目录
- Tomcat
- 1. 软件的架构
- a. 网络应用程序(软件)的组成
- b. 什么是 B/S 交互模型?
- c. 什么是 C/S 交互模型?
- d. B/S 和 C/S 交互模型相同点和不同点
- 2. Web 资源的类别
- a. 静态资源
- b. 动态资源
- 3. 服务器
- a. 什么是服务器?
- b. 服务器的作用
- c. 常见的服务器软件
- 4. Tomcat 服务器软件安装和介绍
- a. Tomcat 基本概述
- b. Tomcat 下载
- c. Tomcat 安装
- d. 启动 Tomcat 服务器
- e. 测试访问 Tomcat 服务器
- f. 关闭 Tomcat 服务器
- g. Tomcat 安装常见的问题
- i. 无法启动(闪退:cmd 命令窗口出现一下,就消失)
- ii. 端口被占用导致启动失败
- iii. 修改 Tomcat 启动端口
- h. Tomcat 目录介绍
- 5. Web 项目目录结构
- 6. Tomcat 的发布项目方式
- a. 在 webapps 文件夹下面直接发布
- b. 使用虚拟路径的方式发布项目
- i. 配置 server.xml,添加 context 标签
- ii. 配置独立 xml 文件
- 7. IDEA 中配置 Tomcat
- a. 在工程中配置 Tomcat 服务器
- b. 测试配置
- i. 创建 web 项目
- ii. 配置访问路径
- iii. 浏览器测试访问
Tomcat
1. 软件的架构
a. 网络应用程序(软件)的组成
- 网络中有很多的计算机,它们直接的信息交流,我们称之为:交互。 在互联网交互的过程的有两个非常典型的交互方式—B/S 交互模型和 C/S 交互模型。
b. 什么是 B/S 交互模型?
- 答:就是浏览器和服务器交互模型。
c. 什么是 C/S 交互模型?
- 答:就是客户端(例如:百度网盘)和服务器交互模型。
d. B/S 和 C/S 交互模型相同点和不同点
相同点:
- 都是基于请求—响应交互模型,即:
浏览器(客户端) 向 服务器发送 一个 请求;
服务器 向 浏览器(客户端)回送 一个 响应 。 - 必须先有请求才有响应。
- 请求和响应成对出现。
不同点:
- 实现 C/S 模型需要用户在自己的操作系统安装各种客户端软件(百度网盘、腾讯 QQ 等);实现 B/S 模型,只需要用户在操作系统中安装浏览器即可。
注:B/S 模型可以理解为一种特殊 C/S 模型。
2. Web 资源的类别
a. 静态资源
- 指 web 页面中供人们浏览的数据始终是不变。比如:HTML、CSS、JS、图片、音频、视频。
b. 动态资源
- 指 web 页面中供人们浏览的数据是由程序产生的,不同时间点访问 web 页面看到的内容各不相同。比如:你在不同时间搜索微博的热门话题内容是不一样的,每天的天气情况也是变化的。这些数据由程序生成,JSP/Servlet、ASP、PHP 等技术都可以完成。
- 本文接下来主要介绍动态 web 资源。
总结:静态资源的数据都是写死在页面上的固定不变。 动态资源浏览器访问的结果是变化的(动态 web 资源中,数据都是程序读取数据库、xml 等文件生成的数据)。
3. 服务器
a. 什么是服务器?
- 服务器就是一个软件,任何电脑只需要安装上了服务器软件,然后该电脑的指定目录下的资源就能提供对外访问的功能。
b. 服务器的作用
- 服务器是提供计算服务的设备。服务类型有很多,常见的有:游戏服务,购物服务,新闻服务等。
c. 常见的服务器软件
- WebLogic
Oracle 公司的产品,是目前应用最广泛的 Web 服务器,支持 J2EE 规范。WebLogic 是用于开发、集成、部署和管理大型分布式 Web 应用、网络应用和数据库应用的 Java 应用服务器。 - WebSphere
IBM 公司的 WebSphere,支持 JavaEE 规范。WebSphere 是随需应变的电子商务时代的最主要的软件平台,可用于企业开发、部署和整合新一代的电子商务应用。 - Glass Fish
最早是 Sun 公司的产品,后来被 Oracle 收购。开源,中型服务器。 - JBoss
JBoss 公司产品。开源,支持 JavaEE 规范,占用内存、硬盘小,安全性和性能高。 - Tomcat
中小型的应用系统,免费开源,支持 JSP 和 Servlet。本文主要介绍的是 Tomcat 服务器。
4. Tomcat 服务器软件安装和介绍
a. Tomcat 基本概述
- Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器。Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。由于有了 Sun 的参与和支持,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中得到体现。
- 因为 Tomcat 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,是目前比较流行的 Web 应用服务器。
b. Tomcat 下载
- 先去官网下载:http://tomcat.apache.org/,选择 Tomcat 8 版本(红框所示):
- tar.gz 文件 是 linux 操作系统下的安装版本;
- exe 文件 是 Window 操作系统下的安装版本;
- zip 文件 是 Window 操作系统下压缩版本(我们选择 zip 文件)。
c. Tomcat 安装
- 解压当前这个 Tomcat 压缩包;
- Tomcat 运行依赖于 Java 环境,因此要配置 JDK 的环境变量:
d. 启动 Tomcat 服务器
- 查找 Tomcat 目录下的 bin 目录,查找其中的 startup.bat 命令,双击启动服务器:
e. 测试访问 Tomcat 服务器
- 打开浏览器,在浏览器的地址栏中输入:http://127.0.0.1:8080 或 http://localhost:8080(
Localhost
相当于127.0.0.1
)。
f. 关闭 Tomcat 服务器
- 可以点击 CMD 窗口的退出按钮。
- 也可以查找 Tomcat 目录下 bin 目录,查找其中的 shutdown.bat 命令,双击关闭服务器:
- shutdown.bat 是正常的关闭,会等程序运行完毕,相对“温柔”;而直接关闭 CMD 窗口是给服务器“断电”,如果在 CMD 中安全退出,可以输入两次 ctrl + c。
g. Tomcat 安装常见的问题
i. 无法启动(闪退:cmd 命令窗口出现一下,就消失)
- 主要原因:没有配置 JAVA_HOME 环境变量。(JAVA_HOME 环境变量中配置的是 JDK 的安装目录,
不包含 bin 目录,不是 Tomcat 的安装目录。 - 闪退的原因查看:可以在 startup.bat 文件末尾书写
pause
命令。让运行的窗口暂停。
效果:
ii. 端口被占用导致启动失败
- 如果启动的时候,发生异常问题,这时有可能是端口被占用。
- Tomcat 服务器在启动的时候默认使用本地的 8080 端口,如果这个端口被占用,启动的时候就会报
错。 - 报错内容可以通过查询 Tomcat 目录下的 logs 目录中
Catalina.当前系统年月日.log
文件查看,如下图: - 我们需要做的是查看本地端口使用情况,关闭占用端口的程序: 在 DOS 窗口中输入
netstat –nao
,就可以查看当前端口的占用情况: - 使用任务管理器 >> 选择详细信息 >> 查看 pid 为 11604(查询出来的值),关闭结束进程即可:
- 注意:如果这个进程是操作系统的任务进程,这时一般是不能停止这个进程。
- 如果是系统进程占用端口,那么我们只能换一个端口,下面看如何修改端口:
iii. 修改 Tomcat 启动端口
- Tomcat 服务器的配置文件,全部都在 Tomcat 的安装目录下的 conf 目录下:
- server.xml 是服务器端口配置、服务器自身配置文件。
- 打开 server.xml,修改服务器端口:
- 修改 Tomcat 的端口为 9090:
修改完 server.xml 文件必须重启服务器才能有效。 通过浏览器的地址栏访问测试:http://localhost:9090
h. Tomcat 目录介绍
- bin:存放启动和关闭 Tomcat 的脚本文件。
- conf:存放 Tomcat 服务器的各种配置文件。其中,web.xml 是项目用来部署描述配置文件、描述项目用的;server.xml 是服务器端口配置、服务器自身配置文件。
- lib:存放 Tomcat 服务器和所有 Web 应用程序需要访问的 jar 文件。
- logs:存放 Tomcat 的日志文件。
- temp:存放 Tomcat 运行时产生的临时文件。
- webapps:当发布 Web 应用程序时,通常把 Web 应用程序的目录及文件放到这个目录下。webapps 下默认有一个 ROOT 文件夹,保存了 Tomcat 欢迎页面。
- work:Tomcat 将 JSP 生成的 Servlet 源文件和字节码文件放到这个目录下。
5. Web 项目目录结构
- 在 JavaEE 规范中,WEB 项目存在一定的目录结构,具体结构如下:
6. Tomcat 的发布项目方式
a. 在 webapps 文件夹下面直接发布
- 只要将准备好的 web 资源直接复制到 Tomcat/webapps 文件夹下,就可以通过浏览器使用 http 协议访问获取。
- 创建 aaa 文件夹:
- 定义一个 html 文件,内容为:
<h1>Hello Tomcat</h1>
b. 使用虚拟路径的方式发布项目
i. 配置 server.xml,添加 context 标签
- 在 C 盘 work 目录下创建一个文件夹为 aaa,在 aaa 文件夹中添加一个1.html 文件,内容为:
<h1>Hello Tomcat</h1>
- 在 tomcat/conf/server.xml 中找到标签,添加标签,如图所示:
<!-- path浏览器访问地址,docBase网站所在的硬盘位置 -->
<Context path="first" docBase="C:\work\aaa">
注:这一种方式有一个缺点,就是 server.xml 是 Tomcat 核心文件一旦出错,导致整个 Tomcat 无法启动。
ii. 配置独立 xml 文件
- 在 C 盘 work 目录下创建一个文件夹为 aaa,在 aaa 文件夹中添加一个 1.html 文件内容为:
<h1>Hello Tomcat</h1>
- 在 Tomcat/conf 目录下新建一个 Catalina 目录(如果已经存在无需创建),并在 Catalina 目录下创建 localhost 目录,然后在 localhost 中创建 xml 配置文件,名称为:unique(注:这个名称是浏览器访问路径)。如图:
- 在这个新建的 xml 文件中,增加下面配置语句:
<Context docBase="C:\work\aaa" reloadable="true" />
- docBase 是网站所在的硬盘位置,和上面的是一样的;
- 不需要 path 配置,加上也没什么用;
- reloadble 是设定项目有改动时,Tomcat 是否重新加载该项目,上面也可以加上
- 启动 Tomcat,访问测试:http://127.0.0.1:8080/aaa/1.html
配置独立 xml 文件的优点:无需重启服务器自动加载和卸载项目。演示:
- 在 localhost 中创建一个 escape 文件夹,将 unique.xml 移动到 escape 文件夹:
此时,服务器自动卸载项目:- 将 unique.xml 移动回到 localhost 目录下:
此时,服务器自动加载项目(需要等待一会儿时间):配置 xml 文件的方法是发布 Tomcat 的核心方法,它与在 webapps 文件夹下面直接发布的方法都是比较常用的发布方法。
7. IDEA 中配置 Tomcat
- 因为开发的时候都是用 IDE,所以要将 IDEA 和 Tomcat 集成到一起,可以通过 IDEA 就能控制 Tomcat 的启动和关闭:
a. 在工程中配置 Tomcat 服务器
- 点击 OK 回到配置目录,然后再次点击 “Configure”,修改 Name:
- 此步不操作的话,会出现两个名称的服务器,一个"tomcat8",一个"Tomcat 8.X.XX"。前者不能使用,后面这个才是真正配置好的服务器,若不配置以下步骤,服务器也可以使用,都是使用"Tomcat 8.X.XX"。为了避免这种现象建议操作此步。
- 点击 OK 回到项目区,此时 Tomcat 就配置完成了:
- 在一个项目中,以上的配置只需要配置一次即可。
b. 测试配置
i. 创建 web 项目
- 新建 Module(这里选择的是 Java EE 5):
ii. 配置访问路径
- 修改访问的根路径名称:
- artifact 就是在 out 路径下存放 class 文件的伪像目录(即存放要发布的内容),这些 class 文件才是要配置 Tomcat 的 target。
- 注意:IDEA 的 2017 版本部署项目时默认的虚拟路径是
/
,而 2019 版本默认是war 包
, 目前我习惯配置根路径为当前的模块名。
- 修改完成之后就可以启动 Tomcat 服务器了:
iii. 浏览器测试访问
- 在项目下的 web 下有一个 index.jsp,当我们启动成功的时候就会访问 http://localhost:8080/webappPractice,访问的就是 webappPractice 下的 index.jsp 页面。此页面为 Tomcat 的默认主页。
- 默认 index.jsp 展示效果: