【Tomcat 服务器安装及基础配置使用】
一、 Web 相关概念
1. 软件架构
- C/S :客户端/服务器端
- B/S :浏览器/服务器端
2. 资源分类
- 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源(如:HTML、CSS、JavaScript)静态资源可以直接被浏览器解析
- 动态资源:每个用户访问相同的资源后,得到的结果可能不一样,称为动态资源(如:Servlet、JSP、PHP、ASP…)动态资源被访问后,需要先转换为静态资源。再返回给浏览器
基于 B/S 的过程:浏览器发出请求,服务器端的静态资源可以直接加载进浏览器(称为响应)并在静态资源解析引擎帮助下显示在浏览器上,而动态资源需要在服务器中转换为静态资源才能进一步操作
3. 网络通信三要素
- IP :电子设备(计算机)在网络中的唯一标识
- 端口 :应用程序在计算机中唯一标识,0 ~ 65536 之间
- 传输协议 :规定了数据传输的规则
- 基础协议:
- TCP :安全协议,经历三次握手,速度较慢
- UDP :不安全协议,可能会丢失数据,但速度快
二、 Web 服务器软件
- 服务器:安装了服务器软件的计算机
- 服务器软件:接收用户的请求,处理请求,做出响应
- Web 服务器软件:接收用户的请求,处理请求,做出响应
- 在 Web 服务器软件中,可以部署 Web 项目,让用户通过浏览器来访问这些项目
- Web 容器
- 常见的 Java 相关的 Web 服务器软件
- WebLogic :Oracle 公司,大型的 JavaEE 服务器,支持所有的 JavaEE 规范,收费
- WebSphere :IBM 公司,大型的 JavaEE 服务器,支持所有的 JavaEE 规范,收费
- JBOSS :JBOSS 公司,大型的 JavaEE 服务器,支持所有的 JavaEE 规范,收费(部分免费)
- Tomcat :Apache 基金组织,中小型的 JavaEE 服务器,仅仅支持少量的 JavaEE 规范(Servlet、JSP…)开源,免费
- JavaEE :Java 语言在企业级开发中使用的技术规范的总和,一共规定了13项大的规范
1. Tomcat 简单使用
Tomcat :Web 服务器软件
-
下载:Tomcat官网
-
安装:解压压缩包即可(注意:安装目录建议不要有中文和空格)
-
卸载:删除目录即可
-
启动:
- bin/startup.bat(Windows 操作系统)bin/startup.sh(Linux 操作系统),双击运行该文件即可
- 访问:浏览器输入:http://localhost:8080 回车访问自己
- 访问:浏览器输入:http://别人的 IP 地址:8080 回车访问别人
-
关闭:
- 正常关闭:
- 双击运行
bin/shutdown.bat
文件,即可关闭 - 在运行的窗口中:ctrl + c ,即可关闭
- 双击运行
- 强制关闭:点击启动窗口的
×
号
- 正常关闭:
目录结构 | 作用 |
---|---|
bin | 可执行文件 |
conf | 配置文件 |
lib | 依赖的 jar 包 |
logs | 日志文件 |
temp | 临时文件 |
webapps | 存放 web 项目 |
work | 存放运行时的数据 |
- 启动时可能遇到的问题:
- 黑窗口一闪而过:
- 原因:没有正确配置 JAVA_HOME 环境变量
- 解决方案:正确配置 JAVA_HOME 环境变量
- 启动报错:
- 暴力解决:找到占用的端口号,并且找到对应的进程,结束该进程
- 在任务命令行(cmd 窗口)输入:
netstat -ano
找到占用的8080端口号进程,记住他的 PID 属性 - (Windows 7 版本)在 Windows 任务资源管理器中查看进程,点击查看按钮,找到 PID 前方打对勾(默认没打),显示进程中找到记住的 PID 属性对应的进程,结束该进程
- (Windows 10/11 版本)在 Windows 任务资源管理器中查看详细信息一栏中找到记住的 PID 属性对应的进程,结束该进程
- 在任务命令行(cmd 窗口)输入:
- 温柔解决:修改自身的端口号
- 在 Tomcat 目录结构中找到 conf 目录下的
server.xml
文件 - 在如图所示的地方即可修改默认端口号(注意保存),但是这种方式可能意味着该文件之后的内容的端口号还要加以更改,所以不建议采用这种方式
- 一般会将 Tomcat 的默认端口号修改为80,80端口号是 http 协议的默认的端口号,好处是,在访问时,浏览器中就不用输入端口号
- 在 Tomcat 目录结构中找到 conf 目录下的
- 暴力解决:找到占用的端口号,并且找到对应的进程,结束该进程
- 黑窗口乱码问题:
- 解决方式:
- 打开 Tomcat 的
conf/server.xml
如图所示位置增加URIEncoding="UTF-8"
- 将日志的编码格式修改,打开 Tomcat 的
conf/logging.properties
如图所示将 UTF-8 修改为 GBK
- 黑窗口一闪而过:
2. Tomcat 配置部署项目
- 配置
- 部署项目的方式:
- 第一种方式:直接将项目放到 webapps 目录下即可,这样即可通过浏览器访问自己写的文件
/hello
:项目的访问路径 → 虚拟目录/hello.html
:项目的资源名称- 简化部署:将项目打成 war 包,再将 war 包放置到 webapps 目录下,war 包会自动解压缩,等到删除时,删除 war 包时,自动删除解压目录
- 第二种方式:配置
conf/server.xml
文件:(由于改动原有的配置文件,所以实际中并不推荐使用这种方式)- 在
<Host>
标签体中配置<Context docBase="E:\Test\hello" path="xunimulu" />
- 如图所示:
- 访问:如图所示即可成功
- docBase :项目存放的路径
- path ;虚拟目录(可以根据需求自拟)
- 在
- 第三种方式:在
conf/Catalina/localhost
目录下创建任意名称的 xml 文件,在文件中编写:<Context docBase="E:\Test\hello" />
(热部署方式,推荐使用)- 如图所示:
- 此时不在需要写出虚拟目录,虚拟目录就是 xml 文件的名称
- 访问:
- 如果将来不想使用写出的某个文件但又不想删除文件,可以将文件后缀名更改为
.xml_back
,变为临时文件,这时服务器就读取不到,而且不再需要重新启动 Tomcat 服务器
- 如图所示:
- 第一种方式:直接将项目放到 webapps 目录下即可,这样即可通过浏览器访问自己写的文件
- 部署项目的方式:
3. 项目目录结构
- 静态项目和动态项目:
- 目录结构:
- Java 动态项目的目录结构:
- 项目的根目录
- WEB-INF 目录
- web.xml :web 项目的核心配置文件
- classes 目录:放置字节码文件的目录
- lib 目录:放置依赖的 jar 包
- WEB-INF 目录
- 项目的根目录
- Java 动态项目的目录结构:
- 目录结构:
4. Tomcat 集成到 IDEA 中
将 Tomcat 集成到 IDEA 中,并且创建 JavaEE 的项目,部署项目
- 在任务栏中找到运行栏
- 选择编辑配置
- 点击左上角
+
号按钮,添加 Tomcat 服务器 → 本地
- 找到配置按钮进行本地配置,选中
apache-tomcat-版本号
这个目录即可
- 检测一遍看是否成功配置,成功后显示这两个类
5. 创建 Web 项目
- 选择文件 → 新建 → 模块
- 选择 Java Enterprise
- 选择 Web 应用程序,命名等操作,这样是在 Maven 和 JUnit 框架下构建的模块(了解 Maven 项目结构,查阅【Maven 基础】)
- 找到构建的目录下的
index.jsp
,点击绿色按钮运行即可启动 Tomcat 服务器,跳转到该页面
- 在原来编辑配置处找到部署,即可查看访问路径
index.jsp
为默认首页,项目自带的文件,所以即使只有下图所示路径就可以访问到该文件
- 在
webapp
文件夹下新建hello.html
,则就需要重启服务器,然后在以上路径基础上加上该文件名和扩展名,才可以访问到新建文件(没有进行热部署所以需要重启服务器)
- 更改配置,找到原来的编辑配置处,如下图更改,这样新建项目后自动部署,不需要重新启动服务器,这样就变为了热部署(建议不要更改为“更新类和资源”,因为后期频繁更改类中的代码,影响系统性能)
6. 项目中多个模块配置多个服务器
- 选择如图左上角的加号,继续正常添加本地 Tomcat 服务器(步骤和以上一致)
- 更改名称,同一个项目下,无法添加重名的服务器
- 找到部署,如图左上角添加工件,这里如果一个项目中有多个模块,其中会有对应模块名称工件名,选择
模块名称:war exploded
这个工件,即可完成部署,服务器使用浏览器即可正常访问,还可以更改访问路径(应用程序上下文)