Web服务器——Tomcat
- Web服务器定义
- 它是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更便捷
- Web服务器主要功能
- 封装HTTP协议操作,简化开发
- 将Web项目部署到服务器中,提供网上信息浏览服务
- Tomcat
- 是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范
- 它也被称为Web容器、Servlet容器(Servlet需要依赖于Tomcat才可运行)
- JavaEE(Java Enterprise Edition)
- 为java企业版。指的是Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF
Tomcat基本使用
Tomcat安装
-
Tomcat下载(以Tomcat9.x版本为例)
-
进入官网,查看目前Tomcat官方支持的Tomcat版本及其对应的jdk版本
-
下载Tomcat9
-
将下载后的压缩包解压到本地即可安装完成
-
-
Tomcat目录中各子目录的作用
-
Tomcat环境配置
-
高级系统设置→环境变量→单击系统变量中的新建→变量名设置为
CATALINA_HOME
,变量值设置为自己的Tomcat安装目录 -
找到系统变量中的Path,双击打开→单击新建→输入
%CATALINA_HOME%\bin
,然后一路单击确定即可
-
-
Tmcat卸载
- 直接删除Tomcat安装的目录即可卸载
Tomcat启动及关闭
-
Tomcat启动
-
双击bin目录下的startup.bat后会出现Tomcat控制台运行窗口
-
启动成功判断:在浏览器输入:localhost:8080,若出现Tomcat窗口则说明启动成功,如图所示
-
-
Tomcat关闭
- 强制关闭:直接
x
掉控制台运行窗口 - 正常关闭一:单击bin目录下的shutdown.bat进行关闭
- 正常关闭二:
Ctrl+C
- 强制关闭:直接
-
Tomcat启动时可能出现的问题
-
Tomcat控制台中文乱码 :修改conf/logging.properties中的如下代码(若UTF-8乱码则改为GBK)
java.util.logging.ConsoleHandler.encoding = UTF-8
控制台乱码如图所示
更改编码格式后,乱码问题即可解决
-
端口号冲突(其他程序将Tomcat的端口号占用) :找到对应程序将其关掉即可
-
启动窗口一闪而过 :检查JAVA_HOME环境变量是否正确配置
-
Tomcat文件配置
-
Tomcat配置
-
修改Tomcat默认启动端口号(端口号的取值范围是:
0~65535
) :打开conf/server.xml- server.xml中默认启动端口号为8080,如下所示
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000" />
- 若将Tomcat端口号改为80,则将来访问Tomcat时就不用再输入端口号(原因:HTTP协议默认端口号为80),如下所示
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000" />
此时启动成功判断:直接在浏览器输入localhost然后回车即可,不需要再输入端口号若出现Tomcat窗口则说明启动成功,如图所示
-
Tomcat部署项目
-
将项目放到webapps目录下即可部署完成
-
示例:将hello项目放到webapps下,此时部署完成。在该hello目录下有个a.html页面,此时即可打开浏览器输入:localhost:8080/hello/a.html访问该页面,若在浏览器中成功访问该页面则说明部署成功
-
-
一般JavaWeb项目会被打包成war包 (idea可以生成war包),然后将war包放到webapps目录下,Tomcat会自动将war文件解压缩到webapps目录下
-
将压缩后的JavaWeb项目haha.war复制到webapps目录下,此时会自动将该war包解压缩
-
此时即可打开浏览器输入:localhost:8080/haha/a.html访问该页面,若在浏览器中成功访问该页面则说明部署成功
-
IDEA创建Maven Web项目
Web项目结构
-
Web项目结构分类
-
开发中的项目
-
开发完成部署的Web项目
- 开发中的项目完成后通过执行Maven打包命令
package
,可以获取到开发完成部署的Web项目的war包(注意该war包不会自动到webapps目录下,需要自己手动转移) - 编译后的Java字节码文件和resources的资源文件,会被放到WEB-INF下的classes目录下
- pom.xml中依赖坐标对应的jar包,会被放入WEB-INF下的lib目录下
- 开发中的项目完成后通过执行Maven打包命令
-
创建Maven Web项目
使用骨架方式创建
-
步骤
- 选择Web项目骨架创建项目
- 删除pom.xml多余的坐标
- 补齐缺失的目录结构
-
使用骨架方式创建—方式一
-
选择Web项目骨架创建项目 :File→New→Project→Mavne Archetype,然后按图示写入信息,最后单击Create
-
删除pom.xml多余的坐标 :删减为如下代码
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>MavenWebDemo</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> </project>
注意:
<packaging>war</packaging>
代表打包方式,标签体为war时打包为Web项目;标签体为jar时打包为jar包方式 -
补齐缺失的目录结构
-
右键src→New→Directory→双击自己需要的目录
-
右键test→New→Directory→双击自己需要的目录
-
右键webapp→New→Directory→输入html回车
-
同理即可将Web项目结构补充完成,最终形式如图所示
-
-
-
使用骨架方式创建—方式二
- 选择Web项目骨架创建项目 :File(或右上角设置按钮)→Project Structure→Modules,然后按图示操作
-
删除pom.xml多余的坐标 :删减为如下代码
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>MavenWebDemo</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> </project>
注意:
<packaging>war</packaging>
代表打包方式,标签体为war时打包为Web项目;标签体为jar时打包为jar包方式 -
补齐缺失的目录结构
- 按照使用骨架方式创建的方式一进行目录及文件的补充,将其补充为标准的Web项目结构即可,如图所示
不使用骨架方式创建
-
步骤
- 选择Web项目骨架创建项目
- pom.xml中添加打包方式为war
- 补齐缺失的目录结构
-
具体步骤如下
-
创建一个标准的Maven项目(创建方式详见Maven部分),然后在pom.xml文件中添加Web项目的打包方式,添加完打包方式后单击刷新, 如图所示
-
补齐缺失的目录结构
-
File(或右上角设置按钮)→Project Structure→Facets,然后按图示操作
-
创建webapp目录
-
创建webapp目录下的子目录及文件
-
手动右键→New→Directory补齐其他缺失文件即可
-
-
IDEA中使用Tomcat
-
IDEA若不配置Tomcat的麻烦之处
IDEA若不配置Tomcat则需要在使用Maven中的
package
命令手动将Web项目打包成war包,并找到该Web包的位置将其转移到Tomcat目录下的webapps目录下完成项目部署 -
IDEA配置Tomcat方式一:将本地的Tomcat集成到IDEA中,然后进行项目部署
-
配置本地Tomcat
-
部署项目
-
Tomcat集成到IDEA中的成功性测试
-
创建一个a.html文件并写入简单页面代码,然后单击启动按钮
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa </body> </html>
-
浏览器页面为空或者HTTP状态404(如图一、图二所示),原因是页面打开的是该项目的根目录,我们需要手动将url补充为
http://localhost:8080/MavenWebDemoThree_war/html/a.html
,如图三所示。 -
若不想手动添加url,则需要修改Tomcat的启动路径,如图所示
-
-
-
IDEA配置Tomcat方式二:使用Tomcat Maven插件
-
pom.xml中添加Tomcat插件:
Alt+Insert
→Plugin Template
,然后单击刷新按钮即可添加成功<?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>org.example</groupId> <artifactId>MavenWebDemoThree</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <properties> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <build> <plugins> <!-- Tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> </plugins> </build> </project>
-
若浏览器页面为空或者HTTP状态404,则处理方式有两种
-
手动将url补充为
http://localhost:8080/MavenWebDemoThree_war/html/a.html,
-
配置tomcat插件代码参数,如下:
<build> <plugins> <!-- Tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port><!--设置访问端口号--></port> <path><!--设置访问路径--></path> </configuration> </plugin> </plugins> </build>
-
-
-
IDEA中使用Tomcat的两种方式注意点
-
设置访问路径只能设置到项目访问路径(即虚拟目录),不能设置到项目访问路径下的子目录,因为虚拟目录下的子目录属于核心目录,若没有这些目录则Web项目无法运行成功
-