Tomcat教程
百 科: Apache Tomcat 、 Java Servlet
相关链接: Tomcat的使用(详细流程)
Tomcat服务器下载、安装、配置环境变量教程(超详细)
JavaWeb——Servlet(全网最详细教程包括Servlet源码分析)
Tomcat目录结构
bin: tomcat启动关闭脚本文件。
conf: tomcat各种配置文件。其核心配置文件:
1、server.xml 配置与server相关信息
2、web.xml web应用(一个web应用相当于一个站点)
3、tomcat-users.xml 配置tomcat相关信息(tomcat用户名 密码 权限),文件内容如下
1 |
|
lib: tomcat启动依赖的jar包
logs: tomcat日志
temp: tomcat运行是产生的临时文件
webapps: web应用所在的目录,即提供外界访问的web资源存放目录。
work: tomcat工作目录,主要用于存放jsp被访问后生成对应的servlet文件以及class文件。
配置
1、设置 CATALINA_HOME
环境变量:指向Tomcat的解压目录: D:\Program Files\apache-tomcat-9.0.24
2、设置 PATH 环境变量:%CATALINA_HOME%\bin
启动与关闭
Tomcat服务器占用的默认端口号是8080,若该端口被占用,Tomcat将无法启动。
必要条件: 设置JDK环境变量
方式一 .bat脚本
startup.bat 启动 Tomcat,shutdown.bat 关闭 Tomcat (或直接关闭运行窗口)。
必须设置环境变量 JAVA_HOME
。CATALINA_HOME
非必须,因为可以根据 .bat
脚本定位 tomcat 的 bin 目录。
所需的 JAVA 环境变量可以在系统环境变量里添加,也可以直接修改 catalina.bat
或 setclasspath.bat
中的 JAVA_HOME
与 JRE_HOME
变量。
如果通过 IDE 启动Tomcat,则不需要这两个环境变量。预知详情,请查看 startup.bat、catalina.bat 和 setclasspath.bat 文件。
方式二 自定义启动脚本
编写 Tomcat启动.bat
:
1 | set JAVA_HOME=%cd%\java\jdk-11-openjdk |
%cd%
: https://www.jb51.net/article/30528.htm
方式三 服务
服务启动Tomcat,服务关闭Tomcat。
**安装Tomcat服务 **
编辑 service.bat 文件
1 | set "CURRENT_DIR=%cd%" |
安装服务
cmd –> services.msc,没有名称为 Apache-Tomcat9
的服务。
在 tomcat 的 bin 目录下执行 service.bat install
,刷新服务列表,就可以找到显示名称为 Apache-Tomcat9
,服务名称为 Tomcat9
的服务。
移除服务
service.bat remove SERVICE_NAME
,使用服务名称而非显示名称。
方式四 .exe
双击 Tomcat9.exe 或 Tomcat9w.exe 启动和关闭 Tomcat,前提是已安装Tomcat服务且服务的名称为 Tomcat9。
如果不设置 Tomcat 为服务:双击 Tomcat9.exe,弹窗会立即消失,看不到任何提示;双击 Tomcat9w.exe,弹窗如下:
服务名称 (即 service.bat 文件中的 SERVICE_NAME 变量) 必须和 Tomcat9.exe、Tomcat9w.exe 对应。
Tomcat9.exe启动
成功启动 Tomcat 后的进程列表:
Tomcat9w.exe启动
Tomcat9.exe 是启动tomcat的,Tomcat9w.exe是管理tomcat服务的。
双击 Tomcat9w.exe,弹出可视化 Tomcat 服务的控制台如下:
进程列表:
成功启动 Tomcat 后的进程列表:
区分进程名称
修改 Tomcat9.exe、Tomcat9w.exe 文件名。切记:与服务名称对应。
总结
服务启动和控制台启动 (Tomcat9w.exe) 的服务列表状态是一致的,一个启动可以用另一个关闭。
无论使用何种方式启动,shutdown.bat 都可以关闭。
设置端口号
HTTP协议默认端口号为80。如果服务器端口号为80,则URL中的端口号可以忽略,否则必须使用冒号加端口号指明。大部分的Web服务器都是80端口,例如新浪网。在浏览器中输入http://www.sina.com.cn与http://www.sina.com.cn:80的效果是一样的。
Tomcat默认端口号为8080,而非80,因此在URL中必须指明端口。
1 | <!-- protocol="HTTP/1.1" 表示Tomcat使用何种网络协议来接受和处理client端请求 --> |
端口号可随意修改,若端口被占用就启动失败。
端口号最大 65535 : TCP/UDP端口列表
设置临时域名
访问Tomcat服务器的方式有:
1、使用域名localhost访问。仅限于本机上,例如:http:localhost:8080.
2、使用IP地址127.0.0.1访问。仅限于本机上,例如http://127.0.0.1:8080。本IP为保留IP,代表本机。
3、使用机器名称访问。仅限于本机上或者局域网内。例如:http:// HelloweenPad:8080。
4、使用本机IP访问。例如:http://123.112.62.231:8080。
5、如果有域名指向该服务器,可以使用域名访问,例如:http://www. Helloweenvsfei.com。
除了上面的方式之外,Windows还提供一种机制,为机器设置临时域名。打开C:\Windows\System32\drivers\etc文件夹,编辑hosts文本。在文件的最后添加一个IP地址与对应的主机名称。如图,两个主机名称指向了本机IP,即可使用http://www.zhaolq.com:8080与http://www.zhaolq.com.cn:8080在本机器上访问Tomcat服务器了。
提示:不建议修改host文件。仅用于用某域名来测试本机上的Web程序。
设置虚拟主机
Tomcat中可以设置虚拟主机,即多个不同域名的网站共存于一个Tomcat中。方法是修改 apache-tomcat-7.0.50\conf\server.xml。一个<Host>代表一个虚拟主机、一个域名,例如:
1 | <Engine name="Catalina" defaultHost="localhost"> |
Tomcat会根据访问的域名不同,自动映射到不同的网站目录中。Server.xml是Tomcat最主要的配置文件,绝大多数的配置都在本文件中,具体配置见官网或 Tomcat webapps 下的文档。
虚拟主机:一台物理机上搭建多个web站点,每个web站点独立运行,互不干扰,这些站点就是”虚拟主机”。
虚拟主机的两种实现方式如下。
基于主机名的虚拟主机
多个域名解析到同一个IP地址,在WEB服务器里添加多个站点,每个站点设定一个主机名。HTTP协议请求里包含了主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。
步骤:
a、配置域名与Ip的映射管理(对于本地局域网我们使用在host文件中添加;对于大型网络或者外网网络则需要配置DNS服务器中Ip地址与域名的映射关系)
在C:\Windows\System32\drivers\etc\hosts文件末尾添加:
127.0.0.1 www.zhaolq1.com
127.0.0.1 www.zhaolq2.com
b、配置server.xml
1 | <Host name="www.zhaolq1.com" appBase="D:\app1" unpackWARs="true" autoDeploy="true"></Host> |
将apache-tomcat-9.0.24\webapps下的全部文件分别copy到 app1和app2文件夹下。
有时间研究一下<host>标签及其子标签中的元素。
c、测试
http://www.zhaolq1.com:8080/ 或者:zhaolq1.com:8080
http://www.zhaolq2.com:8080/ 或者:zhaolq2.com:8080
基于端口号的虚拟主机
一个IP地址,通过不同端口访问不同网站。
在server.xml 中 设置两个service组件:
1 |
|