TomCat
服务器分类
版本说明
概念
Tomcat是一个能够处理请求并产生响应的应用程序。Tomcat实现了javaEE平台下的一些技术规范,所以我们可以在Tomcat中运行我们所编写的Servlet,JSP
架构图
Server组件
启动一个server实例 (即一个JVM进程),它监听在8005端口以接收shutdown命令Server的定义不能使用同一个端口,这意味着如果在同一个物理机上启动了多个Server实例,必须配置它们使用不同的端口。
<Server port="8005" shutdown="SHUTDOWN">
port: 接收shutdown指令的端口,默认为8005;
shutdown: 发往此Server用于实现关闭tomcat实例的命令字符串,默认为SHUTDOWN;
远程客户端工具
安装telnet客户端:控制面板-安装卸载程序-启动window程序
查看监听端口
netstat -ano (-a所有监听socket信息,-n基于所有的ip显示,-o显示所有进程的pid)
官网
安装、配置
安装:直接解压就可以了,建议:不要有中文的目录,目录层次不要太深
目录结构详解
bin存放tomcat的程序,主要有两大类,以.sh结尾(linux命令),以.bat结尾的(window命令)
conf存放tomcat的配置文件
配置文件介绍
context.xml
context.xml 是Tomcat 公用的环境配置。 Tomcat 服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了) ,就会自动重新加载这个文件,而不需要重启服务器
web.xml
Web应用程序描述文件,都是关于是Web应用程序的配置文件。所有Web应用的 web.xml文件的父文件。
server.xml
是 tomcat 服务器的核心配置文件,server.xml的每一个元素都对应了 tomcat中的一个组件,通过对xml中元素的配置,实现对 tomcat中的各个组件和端口的配置。
tomcat-users.xml
配置访问Tomcat的用户以及角色的配置文件。
解决控制台乱码
控制台产生乱码的原因是在Tomcat在输出日志中使用的是UTF-8编码,而我们中文的Windows操作系统使用的是GBK编码。由于编码格式不统一,所以出现了乱码。
解决方式
修改conf目录中的logging.properties文件重新指定的编码方式。
java.util.logging.ConsoleHandler.encoding = GBK
启动、关闭
启动:双击:bin\startup.bat
关闭:
直接×掉运行窗口:强制关闭
bin\shutdown.bat:正常关闭
Ctrl+C:正常关闭
启动常见的问题
没有配置JAVA的环境变量
控制台中文乱码
修改conf/logging.properties
将所有的UTF-8换成GBK
Tomcat – 基本使用
修改启动端口号
conf/server.xml
注:HTTP协议默认端口号为80,如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号
启动时可能出现的问题
端口号冲突:找到对应程序,将其关闭掉
启动窗口一闪而过:检查JAVA_HOME环境变量是否正确配置
Tomcat – 部署项目
Tomcat 部署项目:
将项目放置到 webapps 目录下, 即部署完成
直接将项目复制到webapps目录下
采用压缩文件.war的方式
1.将整个项目使用压缩工具打包成一个zip文件,注:在目录的下一级打包
2.改zip的扩展名为war
3.复制到webapps目录下,tomcat会自动解压成一个同名的目录。
注意:必须是zip压缩包,里面的文件不能有中文名
idea中创建web项目
2020版3月以后
IDEA中使用 Tomcat方式 – 集成本地Tomcat
配置Tomcat Manager
什么是Tomcat Manager
Tomcat Manager是Tomcat自带的、用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。默认情况下,Tomcat Manager是处于禁用状态的。准确的说,TomcatManager需要以用户角色进行登录并授权才能使用相应的功能,不过Tomcat并没有配置任何默认的用户,因此我们需要先进行用户配置后才能使用Tomcat Manager。
配置Tomcat Manager的访间用户
Tomcat Manager中没有默认用户,我们需要在tomcat-users.xml文件配置。TomcatManager的用户配置需要配置两个部分: 角色配置、用户名及密码配置。
Tomcat Manager中的角色分类
manager-gui角色:
允许访问HTML GUI和状态页面(即URL路径为/manager/html/*)
manager-script角色:
允许访问文本界面和状态页面(即URL路径为/manager/text/*)
manager-jmx角色:
允许访问JMX代理和状态页面(即URL路径为/manager/jmxproxy/*)
manager- status角色:
仅允许访问状态页面(即URL路径为/manager/status/*)
配置用户及角色
修改tomcat-user.xml
<role rolename ="manager-gui"/>
<user username ="tomcat" password ="tomcat" roles="manager-gui"/>
解除非本机IP限制
进入Tomcat的webapps目录下,打开webapps/manager/META-INF/context.xml文件修改下面这段配置
<context antiresourcelocking="false" privileged="true".<!-- 把下面这段注释掉 -->
<!-- <Valve
className="org.apache.catalina.valves.RemoteAddrValveallow="127\. d+\. d+ . d+l::110:0:0:0:0:0:0:1" /> -->
</context>
Tomcat体系架构
tomcat工作原理
Tomcat是一个能够处理请求并产生响应的应用程序。Tomcat实现了JavaEE平台下的一些技术规范,所以我们可以在Tomcat中运行我们所编写的Servlet、JSP。
conf/servlet.xml配置文件
<?xml version="1.0"encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Service name="Catalina">
<!-- 连接器监听端口是 8080,默认通讯协议是 HTTP/1.1 -->
<Connector port="8080” protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443” />
<!-- 名字为 catalina 的引擎,其默认的虚拟主机是 1ocalhost -->
<Engine name="Catalina" defaultHost="Tocalhost">
<!-- 名字为 1ocalhost 的虚拟主机,其目录是 webapps-->
<Host name="Tocalhost"appBase="webappsunpackWARs="true"autoDeploy="true"></Host>
</Engine>
</service>
Server
Tomcat组件
Server组件
启动一个server实例(即一个JVM进程),它监听在8005端口以接收shutdown命令Server的定义不能使用同一个端口,这意味着如果在同一个物理机上启动了多个Server实例,必须配置它们使用不同的端口。
<Server port="8005” shutdown="SHUTDOWN">
port: 接收shutdown指令的端口,默认为8005;
shutdown: 发往此Server用于实现关闭tomcat实例的命令字符串,默认为SHUTDOWN;