9-Tomcat
1. 简介
1.1 什么是 web 服务器
Web 服务器是一个应用程序(软件),对 HTTP 协议的操作进行封装,使得程序员不必直接对协议进行操作,让 Web 开发更加便捷。主要功能是"提供网上信息浏览服务"。

Web 服务器是安装在服务器端的一款软件,将来我们把自己写的 Web 项目部署到 Web Tomcat 服务器软件中,当 Web 服务器软件启动后,部署在 Web 服务器软件中的页面就可以直接通过浏览器来访问了。
1.2 Web 服务器软件使用步骤
- 准备静态资源
- 下载安装 Web 服务器软件
- 将静态资源部署到 Web 服务器上
- 启动 Web 服务器使用浏览器访问对应的资源
上述内容在演示的时候,使用的是 Apache 下的 Tomcat 软件,至于 Tomcat 软件如何使用,后面会详细的讲到。而对于 Web 服务器来说,实现的方案有很多,Tomcat 只是其中的一种,而除了 Tomcat 以外,还有很多优秀的 Web 服务器,比如:

1.3 Tomcat
Tomcat 的相关概念:
-
Tomcat 是 Apache 软件基金会一个核心项目,是一个开源免费的轻量级 Web 服务器,支持 Servlet/JSP 少量 JavaEE 规范。
-
概念中提到了 JavaEE 规范,那什么又是 JavaEE 规范呢?
JavaEE: Java Enterprise Edition,Java 企业版。指 Java 企业级开发的技术规范总和。包含 13 项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF。
-
因为 Tomcat 支持 Servlet/JSP 规范,所以 Tomcat 也被称为 Web 容器、Servlet 容器。Servlet 需要依赖 Tomcat 才能运行。
-
Tomcat 的官网: https://tomcat.apache.org/ 从官网上可以下载对应的版本进行使用。
Tomcat 的 LOGO

小结
通过这一节的学习,我们需要掌握以下内容:
- Web 服务器的作用
封装 HTTP 协议操作,简化开发
可以将 Web 项目部署到服务器中,对外提供网上浏览服务
- Tomcat 是一个轻量级的 Web 服务器,支持 Servlet/JSP 少量 JavaEE 规范,也称为 Web 容器,Servlet 容器。
2. 基本使用
2.1 下载
直接从官网下载

2.2 安装
Tomcat 是绿色版,直接解压即可
-
在 D 盘的 software 目录下,将
apache-tomcat-8.5.68-windows-x64.zip进行解压缩,会得到一个apache-tomcat-8.5.68的目录,Tomcat 就已经安装成功。注意,Tomcat 在解压缩的时候,解压所在的目录可以任意,但最好解压到一个不包含中文和空格的目录,因为后期在部署项目的时候,如果路径有中文或者空格可能会导致程序部署失败。
-
打开
apache-tomcat-8.5.68目录就能看到如下目录结构,每个目录中包含的内容需要认识下,

bin:目录下有两类文件,一种是以.bat结尾的,是 Windows 系统的可执行文件,一种是以.sh结尾的,是 Linux 系统的可执行文件。
webapps:就是以后项目部署的目录
到此,Tomcat 的安装就已经完成。
2.3 卸载
卸载比较简单,可以直接删除目录即可
2.4 启动
双击: bin\startup.bat

启动后,通过浏览器访问 http://localhost:8080能看到 Apache Tomcat 的内容就说明 Tomcat 已经启动成功。

2.5 乱码的情况
启动的过程中,控制台有中文乱码,需要修改 conf/logging.prooperties

2.6 关闭
关闭有三种方式
- 直接 x 掉运行窗口:强制关闭[不建议]
- bin\shutdown.bat:正常关闭
- ctrl+c: 正常关闭
2.7 配置
修改端口
-
Tomcat 默认的端口是 8080,要想修改 Tomcat 启动的端口号,需要修改 conf/server.xml

注: HTTP 协议默认端口号为 80,如果将 Tomcat 端口号改为 80,则将来访问 Tomcat 时,将不用输入端口号。
启动时可能出现的错误
-
Tomcat 的端口号取值范围是 0-65535 之间任意未被占用的端口,如果设置的端口号被占用,启动的时候就会包如下的错误

-
Tomcat 启动的时候,启动窗口一闪而过: 需要检查 JAVA_HOME 环境变量是否正确配置

2.8 部署
Tomcat 部署项目: 将项目放置到 webapps 目录下,即部署完成。
3. Maven 创建 Web 项目
3.1 Web 项目结构
Maven Web 项目结构: 开发中的项目

开发完成部署的 Web 项目

- 开发项目通过执行 Maven 打包命令
package,可以获取到部署的 Web 项目目录 - 编译后的 Java 字节码文件和 resources 的资源文件,会被放到 WEB-INF 下的 classes 目录下
- pom.xml 中依赖坐标对应的 jar 包,会被放入 WEB-INF 下的 lib 目录下
3.2 创建 Maven Web 项目
3.2.1 使用骨架
具体的步骤包含:
1.创建 Maven 项目
2.选择使用 Web 项目骨架
3.输入 Maven 项目坐标创建项目
4.确认 Maven 相关的配置信息后,完成项目创建
5.删除 pom.xml 中多余内容
6.补齐 Maven Web 项目缺失的目录结构
-
创建 Maven 项目

-
选择使用 Web 项目骨架

-
输入 Maven 项目坐标创建项目

-
确认 Maven 相关的配置信息后,完成项目创建

-
删除 pom.xml 中多余内容,只留下面的这些内容,注意打包方式 jar 和 war 的区别

-
补齐 Maven Web 项目缺失的目录结构,默认没有 java 和 resources 目录,需要手动完成创建补齐,最终的目录结果如下

3.2.2 不使用骨架
具体的步骤包含:
1.创建 Maven 项目
2.选择不使用 Web 项目骨架
3.输入 Maven 项目坐标创建项目
4.在 pom.xml 设置打包方式为 war
5.补齐 Maven Web 项目缺失 webapp 的目录结构
6.补齐 Maven Web 项目缺失 WEB-INF/web.xml 的目录结构
-
创建 Maven 项目

-
选择不使用 Web 项目骨架

-
输入 Maven 项目坐标创建项目

-
在 pom.xml 设置打包方式为 war,默认是不写代表打包方式为 jar

-
补齐 Maven Web 项目缺失 webapp 的目录结构

-

-
补充完后,最终的项目结构如下:

上述两种方式,创建的 web 项目,都不是很全,需要手动补充内容,至于最终采用哪种方式来创建 Maven Web 项目,都是可以的,根据各自的喜好来选择使用即可。
3.2.3 小结
1.掌握 Maven Web 项目的目录结构
2.掌握使用骨架的方式创建 Maven Web 项目

3.掌握不使用骨架的方式创建 Maven Web 项目

4. IDEA 使用 Tomcat
- Maven Web 项目创建成功后,通过 Maven 的 package 命令可以将项目打包成 war 包,将 war 文件拷贝到 Tomcat 的 webapps 目录下,启动 Tomcat 就可以将项目部署成功,然后通过浏览器进行访问即可。
- 然而我们在开发的过程中,项目中的内容会经常发生变化,如果按照上面这种方式来部署测试,是非常不方便的
- 如何在 IDEA 中能快速使用 Tomcat 呢?
在 IDEA 中集成使用 Tomcat 有两种方式,分别是集成本地Tomcat和Tomcat Maven插件
4.1 集成本地 Tomcat
目标: 将刚才本地安装好的 Tomcat8 集成到 IDEA 中,完成项目部署,具体的实现步骤
-
打开添加本地 Tomcat 的面板

-
指定本地 Tomcat 的具体路径

-
修改 Tomcat 的名称,此步骤可以不改,只是让名字看起来更有意义,HTTP port 中的端口也可以进行修改,比如把 8080 改成 80

-
将开发项目部署项目到 Tomcat 中

扩展内容: xxx.war 和 xxx.war exploded 这两种部署项目模式的区别?
- war 模式是将 WEB 工程打成 war 包,把 war 包发布到 Tomcat 服务器上
- war exploded 模式是将 WEB 工程以当前文件夹的位置关系发布到 Tomcat 服务器上
- war 模式部署成功后,Tomcat 的 webapps 目录下会有部署的项目内容
- war exploded 模式部署成功后,Tomcat 的 webapps 目录下没有,而使用的是项目的 target 目录下的内容进行部署
- 建议大家都选 war 模式进行部署,更符合项目部署的实际情况
-
部署成功后,就可以启动项目,为了能更好的看到启动的效果,可以在 webapp 目录下添加 a.html 页面

-
启动成功后,可以通过浏览器进行访问测试

-
最终的注意事项

小结:

4.2 Tomcat Maven 插件
在 IDEA 中使用本地 Tomcat 进行项目部署,相对来说步骤比较繁琐,所以我们需要一种更简便的方式来替换它,那就是直接使用 Maven 中的 Tomcat 插件来部署项目,具体的实现步骤,只需要两步,分别是:
-
在 pom.xml 中添加 Tomcat 插件
<build> <plugins> <!--Tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> </plugins> </build> -
使用 Maven Helper 插件快速启动项目,选中项目,右键-->Run Maven --> tomcat7:run

注意:
- 如果选中项目并右键点击后,看不到 Run Maven 和 Debug Maven,这个时候就需要在 IDEA 中下载 Maven Helper 插件,具体的操作方式为: File --> Settings --> Plugins --> Maven Helper ---> Install,安装完后按照提示重启 IDEA,就可以看到了。

-
Maven Tomcat 插件目前只有 Tomcat7 版本,没有更高的版本可以使用
-
使用 Maven Tomcat 插件,要想修改 Tomcat 的端口和访问路径,可以直接修改 pom.xml
<build> <plugins> <!--Tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>80</port><!--访问端口号 --> <!--项目访问路径 未配置访问路径: http://localhost:80/tomcat-demo2/a.html 配置/后访问路径: http://localhost:80/a.html 如果配置成 /hello,访问路径会变成什么? 答案: http://localhost:80/hello/a.html --> <path>/</path> </configuration> </plugin> </plugins> </build>