首页 > 编程语言 >JavaWeb(一)

JavaWeb(一)

时间:2023-01-17 13:33:12浏览次数:49  
标签:web JavaWeb Tomcat -- maven 服务器 Maven

JavaWeb

java + web

Tomcat服务器及Maven部分

1、基本概念

1.1、前言

web开发:

  • web:网页
  • 静态web
    • html、css
    • 提供给所有人看的数据始终不会发生变化
  • 动态web
    • 淘宝,几乎所有的网站
    • 提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息不一样
    • 技术栈:Servlet/JSP ,ASP, PHP

在java中,动态web资源开发的技术统称为JavaWeb

1.2、web应用程序

web应用程序:可以提供浏览器访问的程序

  • a.html、b.html…多个web资源,这些web资源可以被外界访问,对外界提供服务
  • 只要是能够访问到的任何一个页面或者资源,都存在于这个世界的某个角落的计算机上。
  • URl
  • 这个统一的web资源会被放在同一个文件夹下,web应用程序–>Tomcat:服务器
  • 一个web应用由多个部分组成(静态web、动态web)
    • html、css、js
    • jsp、servlet
    • Java程序
    • jar包
    • 配置文件(Properties)

web应用程序编写完毕后,若想要提供给外界访问,需要一个服务器来进行统一的管理

1.3、静态web

  • *.html,*.html都表示网页的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取。

JavaWeb(一)_maven

  • 静态web存在的缺点:
    • web页面无法动态跟新,所有用户看到的都是同一个界面
      • 轮播图,点击特效:伪动态
      • JavaScript[实际开发中使用较多]
      • VBScript
    • 它无法和数据库交互(数据无法持久化)

1.4、动态web

页面会动态站视:web页面的展示效果因人而异

JavaWeb(一)_其他_02

缺点:

  • 加入服务器的动态web资源出现了错误,我们就需要重新编写我们的后台程序,重新发布
    • 停机维护

优点:

  • web页面可以动态跟新,所有用户看到都不是同一个页面
  • 它可以与数据库交互(数据持久化:注册、商品信息、用户信息)

JavaWeb(一)_其他_03

2、web服务器

2.1、技术讲解

ASP:

  • 微软:国内最在流行的ASP
  • 在html中嵌入VB的脚本,ASP+COM
  • 在ASP开发中,基本一个页面包含几千行业务代码
  • 维护成本高
  • 使用的语言是C#
  • 基于IIS服务器(windows内置服务器)

PHP:

  • PHP开发速度快,功能强大,跨平台,代码简单(70%公司,WP模板引擎)
  • 无法承载大访问量的情况(局限性)

JSP/Servlet:

B/S:浏览器和服务器

C/S:客户端和服务器

  • sun公司主推的B/S架构
  • 基于java语言(所有的大公司,或者一些开源的组件都是用java编写的)
  • 可以承载三高(高并发、高可用、高性能)带来的影响
  • 语法像ASP,转移学习成本不高

2.2、web服务器

服务器是一种被动的操作,用来处理用户的一些请求和给用户一些相应信息

IIS:

微软,windows自带的

Tomcat:

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个java初学web的人来说,他是最佳的选择。

Tomcat 实际上运行JSP 页面和Servlet,目前Tomcat最新版本为9.0.30。

下载tomcat:

  1. 安装or解压
  2. 了解配置文件以及文件的目录结构
  3. 这个东西的作用

3、Tomcat

3.1、安装tomcat

  1. 官网下载对应的版本
  2. 解压到本地磁盘

3.2、Tomcat启动和配置

文件夹的作用:

JavaWeb(一)_html_04

启动tomacat:

JavaWeb(一)_其他_05

关闭Tomcat:

  1. 直接关闭窗口
  2. 使用脚本文件

JavaWeb(一)_其他_06

可能遇到的问题:

  1. Java环境如果没有配置,会出现闪退
  2. 乱码问题出现后,可以在配置文件中进行相应的修改

3.3、配置

1. 配置要点

核心配置文件

JavaWeb(一)_maven_07

可以修改启动的端口号:

 <Connector connectionTimeout="20000" port="8082" protocol="HTTP/1.1" redirectPort="8443"/>
  • tomcat默认端口:8080
  • mysql默认端口:3306
  • http默认端口:80
  • https默认端口:443

可以修改主机的名称:

  • 默认的主机名为:localhost --> 127.0.0.1
  • 默认网站应用存放的位置:webapps
//此处为引擎,不能修改
<Engine defaultHost="localhost" name="Catalina">
    
//应该修改此处代码
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

2. 面试题:

请你谈谈网站是如何进行访问的。

  1. 输入一个访问的域名

  2. 检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有域名映射

  • 有:直接返回对应的ip地址中,有我们需要访问的web程序,可以直接访问

    JavaWeb(一)_maven_08

  • 没有:就去DNS服务器上寻找,找到了就返回,找不到就返回找不到资源

    JavaWeb(一)_maven_09

具体的操作:

使用www.mobian.com:8082(我自己修改过端口号)访问tomcat服务器的测试首页

  1. 修改servlet.xml核心配置文件(E:\tomcat\apache-tomcat-8.5.45\conf)

    JavaWeb(一)_maven_10

  2. 修改本机的hosts配置文件(C:\Windows\System32\drivers\etc)

JavaWeb(一)_服务器_11

3、浏览器访问

JavaWeb(一)_html_12

3.4、发布一个web网站

将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了

网站应有的结构

--webapps:tomcat服务器的web目录
    --ROOT
    --mobian:网站的目录名
    	--WEB-INF
    		--classes:java程序
    		--lib:web应用所依赖的ar包
    		--web.xml:网站配置文件
    	--index.html:默认的首页
    	--static
    		--css
    			--style.css
    		--js
    		--img
    	--......

HTTP协议:面试

Maven:构建工具

  • Maven安装包

Servlet入门

  • HelloWorld!
  • Servlet配置
  • 原理

4、HTTP

4.1、什么是http

Http(超文本传输协议)是一个简单的请求-响应协议,它通常运行在tcp之上

  • 文本:html、字符串…
  • 超文本:图片、音乐、视频、定位、地图…
  • 端口:80

Https:安全

  • 端口:443

4.2、两个时代

  • http1.0
    • HTTP1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开流量
  • http2.0
    • HTTP1.1:客户端可以与web服务器连接后,可以获得多个web资源

4.3、Http请求

客户端–发请求(Request)–服务器

百度:

Request URL: https://www.baidu.com/  //请求地址
Request Method: GET  //get方法/post方法
Status Code: 200 OK  //状态码:200,表示正常
Remote Address: [2409:8c54:870:28:0:ff:b049:5cef]:443  //远程的地址加端口
Accept:text/html  //连接的方式
Accept-Encoding: gzip, deflate, br  //连接编码
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8  //连接语言
Cache-Control: max-age=0  //缓存控制
Connection: keep-alive  //连接,保持连接
Host: www.baidu.com  //主机名

1.请求行

  • 请求行中的请求方式:GET
  • 请求方式:GET、POST、HEAD、DELETE、PUT、TRACT…
    • get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
    • post:请求能够携带的参数无限制,大小无限制,会在浏览器的URL地址栏不显示数据内容,安全,但不高效

2.请求头

请求的这些都可以用java在后台完成,但是十分的不方便

Accept:text/html  //告诉浏览器,它所支持的数据类型
Accept-Encoding: gzip, deflate, br  //支持那种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8  //告诉浏览器,它的语言环境
Cache-Control: max-age=0  //缓存控制
Connection: keep-alive  //告诉浏览器,请求完成时是断开还是保持连接
HOST: //主机的名字

4.4、Http响应

服务器–响应(Response)–客户端

百度:

Cache-Control: no-cache  //缓存控制
Connection: keep-alive  //连接,保持连接
Content-Encoding: gzip  //内容编码格式
Content-Type: text/html;charset=utf-8  //内容风格

1.响应体

Accept:text/html  //告诉浏览器,它所支持的数据类型
Accept-Encoding: gzip, deflate, br  //支持那种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8  //告诉浏览器,它的语言环境
Cache-Control: max-age=0  //缓存控制
Connection: keep-alive  //告诉浏览器,请求完成时是断开还是保持连接
HOST: //主机的名字
Refresh://告诉客户端,多久刷新一次
Location://告诉网页重新定位

2.响应状态码

状态码集合

2XX:请求成功

  • 200:请求响应成功

3XX:请求重定向

4XX:

  • 404:找不到资源

5XX:

  • 500:服务器代码错误
  • 502:网关错误

3.面试题

当你的浏览器中地址栏输入地址并且回车的一瞬间到页面能够展示回来,经历了什么?

5、Maven

由于我们在javaweb开发过程中需要手动导入很多的jar包,多以Maven诞生了。

5.1、Maven项目架构管理工具

目前使用是为了为了方便导入jar包

Maven核心思想:约定大于配置

  • 有约束,不要去违反

Maven会规定号你该如何去编写我们的java代码,必须按照这个规范来

5.2、下载安装

官网下载:Download结构下
JavaWeb(一)_其他_13

5.3、配置环境变量

配置环境变量:

  1. MAVEN_HOME:Maven的安装路径
  2. M2_HOME :Maven下bin目录的路径(后期springboot、springcloud会使用到)
  3. Path:Maven下bin目录的路径

测试配置:

JavaWeb(一)_html_14

5.4、阿里云镜像

  • 镜像:mirrors
    • 作用:加速我们的下载
  • 国内建议使用阿里云的镜像
<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

实际操作:maven目录下–>conf–>settings.xml打开

JavaWeb(一)_maven_15

5.5、本地仓库

仓库分为:本地的仓库,远程仓库

建立一个本地仓库:localRepository

//在自己的maven目录下,新建一个仓库文件夹
E:\Maven\apache-maven-3.6.3\maven-repo

修改配置文件settings.xml

JavaWeb(一)_maven_16

5.6、在IDEA中新建一个模板的Maven项目

1、使用模板创建一个Maven项目

步骤如下:

1.新建一个工程

JavaWeb(一)_html_17

2.在maven工程下,进行相对应的选择

JavaWeb(一)_服务器_18

3.设置相应的组id和项目名

JavaWeb(一)_html_19

4.选择自己本地的maven项目,maven配置文件以及maven仓库的位置(如果不选择,IDEA则默认使用自带的maven项目,不推荐使用自带的)

JavaWeb(一)_其他_20

5.设置新建的项目名称,以及源代码存放的位置

JavaWeb(一)_html_21

6.完成创建以后,选择自动导入maven需要的文件(存放在了你设置的仓库的位置)

JavaWeb(一)_maven_22

7.看到提示则为创建成功

JavaWeb(一)_服务器_23

8.查看仓库的目录结构,检验导入是否成功

JavaWeb(一)_maven_24

9.在Settings中查看maven相对应的文件的配置情况(可以在导入相应文件之前查看,否则容易出现,仓库的文件下错了位置)

JavaWeb(一)_html_25

10.选择相应的java版本,以及勾选每次导入时需要导入源码

JavaWeb(一)_其他_26

11.查看仓库的目录是否与自己设置的仓库位置一致

JavaWeb(一)_服务器_27

12.点击OK完成

5.7、在IDEA中新建一个普通的Maven项目

1.不要选择任何的模板进行创建

JavaWeb(一)_服务器_28

2.设置相应的项目名和组id

JavaWeb(一)_服务器_29

3.设置相应的工程名及存储位置

JavaWeb(一)_服务器_30

4.选择自动导入相应的文件,效果如图,此时一个干净的maven项目完成

JavaWeb(一)_maven_31

5.8、标记文件夹的功能

方法一:直接右键设置功能

JavaWeb(一)_服务器_32

方法二:在Project Structure中进行一个整体的设置

JavaWeb(一)_其他_33

5.9、在IDEA中配置Tomcat

1.点击添加服务器

JavaWeb(一)_服务器_34

2.点击添加选项,选择添加一个本地的服务器

JavaWeb(一)_服务器_35

3、可以对tomcat服务器进行相应的设置

JavaWeb(一)_html_36

补充:其中,出现警告的原因是,当配置tomcat服务器的时候,需要有与之相对应的已经存在web项目

JavaWeb(一)_服务器_37

4.将相对应的web项目部署到自己新建的服务器上(即解决上面提到的警告)

JavaWeb(一)_html_38

5.根据相应的提示,打包成war包,下面的那个选项是以war包的形式导出项目

JavaWeb(一)_其他_39

6.启动服务器即可

JavaWeb(一)_其他_40

5.10、pom文件

maven的核心配置文件

1.maven配置详情

<?xml version="1.0" encoding="UTF-8"?>

<!--maven版本和头文件-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!--这里是我们刚才配置的GAV-->
    <groupId>per.mobian</groupId>
    <artifactId>16_maven_01</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--项目于的打包方式
    jar:java应用
    war:javaWeb应用
    -->
    <packaging>war</packaging>

    <!--可以删除-->
    <name>16_maven_01 Maven Webapp</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>

    <!--配置-->
    <properties>
        <!--项目的默认构建编码-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!--编译版本-->
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>


    <!--项目依赖-->
    <dependencies>

        <!--项目具体的依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
    </dependencies>


    <!--项目构建用的东西-->
    <build>
        <finalName>16_maven_01</finalName>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

2.一个干净的pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>per.mobian</groupId>
    <artifactId>16_maven_02</artifactId>
    <version>1.0-SNAPSHOT</version>


</project>

在一个干净的pom文件中添加依赖以后,右侧的dependencies会出现相应的jar文件

JavaWeb(一)_服务器_41

3.maven中部分资源无法导出解决(maven中约定,java目录下只能存在java项目,以至于下面的,xml等配置文件无法导出)

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

5.11、maven操作

可以生成jar包的目录树,类似于软件工程里面的类图

JavaWeb(一)_其他_42

5.12、解决遇到的问题

1.maven查看错误信息

解决方法:当maven导入相对应的依赖的时候,会出现导入依赖出错。在相对应的文件内容中,查看打印的错误日志

JavaWeb(一)_html_43

JavaWeb(一)_服务器_44

注意:有时可能会出现版本问题,建议尝试回退版本

2.tomcat服务器闪退

解决方法:由于startup.bat需要调用catalina.bat文件,但是catalina.bat却没有去进行相应的定位,即在startup.bat文件内容的开头处对JAVA_HOME和JRE_HOME进行绑定即可。但是绑定后,IDEA则会出错,所以可以忽略(本人亲测,tomcat启动闪退,但是IDEA启动正常)

查看startup.bat信息

JavaWeb(一)_html_45

JavaWeb(一)_其他_46

3.IDEA每次都需要重新配置maven环境

解决方法:这里需要区分两个概念,全局配置和项目配置,如果是进行全局配置,那么一定不会进入具体的项目就可以进行配置

JavaWeb(一)_服务器_47

JavaWeb(一)_html_48

4.maven新建的webapp项目中的web.xml文件的版本问题

解决方法:由于生成的web.xml文件中的版本太老,可以尝试跟换版本。找到自己对应版本的tomcat,找到自带的默认界面下的web.xml,该文件中的内容即为标准的格式

JavaWeb(一)_其他_49

JavaWeb(一)_maven_50

web.xml内容

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0"
         metadata-complete="true">

    <display-name>Welcome to Tomcat</display-name>
    <description>
        Welcome to Tomcat
    </description>
</web-app>

5.13、Maven仓库的管理

网址:https://mvnrepository.com/

需要对应的jar包时,可以在maven仓库中,导入相对应的依赖

以servlet-api为例,选择时应该注意选择下载人数较多的

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

具体结果如下图:
JavaWeb(一)_maven_51

标签:web,JavaWeb,Tomcat,--,maven,服务器,Maven
From: https://blog.51cto.com/u_15942107/6017181

相关文章

  • 【Javaweb】给tomcat添加第三方jar包
    就是复制到lib文件夹里面之后点击jar包右键 选择modulelibrary,点击ok就可以了 ......
  • 【Javaweb】动态web工程目录介绍
    src存放自己编写的Java源代码web专门用来存放web工程的资源文件(html页面、css文件、js文件等等)WEB-INF是一个受服务器保护的目录,浏览器无法直接访问此目录的内容web.......
  • 【Javaweb】tomcat目录介绍
    bin专门用来存放tomcat服务器的可执行程序conf专门用来存放tomcat服务器的配置文件lib专门用来存放tomcat服务器的jar包logs专门用来存放tomcat服务器运行时输出的......
  • 【Javaweb】瑞吉外卖你冲不冲?冲冲!冲!冲冲!(数据库环境搭建)(maven项目搭建)一
    图形界面创建数据库(Navicat)  命令行方式创建      瑞吉项目一共涉及到十一张表  导入表结构,既可以使用上面的图形界面,也可以使用MySQL命令:通过命......
  • JavaWeb综合案例
    JavaWeb综合案例笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html)视频教程(P154~P163)功能列表环境搭建执行提供的下面的tb_brand.sql脚本--......
  • [项目源码] JavaWeb校园宿舍管理系统
     jsp校园宿舍管理系统源码,采用Servlet+JSP+MySQL。包含数据库文件,界面采用bootstrap,简洁大方。      项目导入eclipse后的目录结构如下: 关注下面公众号,下载源码原......
  • JavaWeb三大组件之过滤器-Filter
    1.Filter过滤器Filter过滤器是javaEE的规范,是接口(javax.servletInterfaceFilter) 2.过滤器作用-拦截请求,过滤响应情景引入:浏览器访问tomcat的login页面,进行登录验证......
  • VsCode里面在JavaWeb项目里面配置Maven环境详解
    1、在之前已经新建完成一个JavaWeb项目的基础上开始2、设置里面搜索Maven,找到这个,然后进行定位3、将TomcatServer配置进去(右上角有一个加号)(对于已经学过Java的并不难......
  • VsCode新建Java、SpringBoot、Python、JavaWeb项目的基本步骤
    新建Java项目选中正上方的搜索框,按下F1快捷键,输入createJava,即可出现这样的一个命令:选中这个:然后为新创建的项目选择一个合适的位置就好啦!新建SpringBoot项目选中......
  • JavaWeb概述
    笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html)参考视频:黑马程序员新版JavaWeb基础教程,Javaweb从入门到企业实战完整版注意:javaWeb部分包含了前端和后......