Tomcat服务器是Apache的一个开源免费的Web容器。它实现了JavaEE平台下部分技术规范,属于轻量级应用服务器。
Tomcat JDK Servlet JSP
10.0.X 8 and later 5.0 3.0
9.0.x 8 and later 4.0 2.3
8.0.x 7 and later 3.1 2.3
7.0.x 6 and later 3.0 2.2
6.0.x 5 and later 2.5 2.1
下载地址
http://tomcat.apache.org/
配置环境变量
前提:配置java的环境变量(Tomcat是用Java语言开发的Web容器)
JAVA_HOME 路径(如C:\Program Files\Java\jdk-11.0.12)
path中添加 %JAVA_HOME%\bin
防止tomcat启动时闪屏
CLASS_PATH %JAVA_HOME%\lib;
windows系统
启动
1.在bin目录点击startup.bat
2.在cmd输入:catalina.bat start
关闭
1.在bin目录点击shutdown.bat
2.在cmd输入:catalina.bat stop
3.关闭窗口 访问 localhost:8080
查看tomcat 镜像
docker search tomcat
下载tomcat镜像
docker pull docker.io/tomee
1启动tomcat容器 名称,端口
docker run -d -p 8080:8080 docker.io/tomee
--name 命名(一般在run后面)
-d 后台运行
-p 宿主机端口:容器内端口
-v使用数据卷
版本号 docker.io/tomee
浏览器用这个网址打开tomcat 192.168.66.100:8080
2启动tomcat容器并配置数据卷
docker run -d -p 8080:8080 -v /opt/webapps:/usr/local/tomee/webapps docker.io/tomee
2使用tomcat
在Linux写个/opt/webapps/test/index.html然后在用192.168.66.100:8080/test/index.html打开
3启动并使用指定卷容器给tomcat配置数据卷
docker run -d -p 8080:8080 -v 容器卷名:/usr/local/tomee/webapps docker.io/tomee
3使用tomcat
通过查看指定容器卷详情信息获取存放地址/var/lib/docker/volumes/88/_data, 在_data创建/test/index.html,然后在浏览器192.168.66.100:8080/test/index.html访问
bin
bin目录主要是用来存放tomcat的命令文件,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)。
conf
conf目录主要是用来存放tomcat的一些配置文件。
lib
lib目录主要用来存放tomcat运行需要加载的jar包。
logs
logs目录用来存放tomcat在运行过程中产生的日志文件。
temp
temp目录用户存放tomcat在运行过程中产生的临时文件。(清空不会对tomcat运行带来影响) webapps
webapps目录用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包的形式发布应用。
work
work目录用来存放tomcat在运行时的编译后文件,例如JSP编译后的文件。
Tomcat 的配置文件由4个xml组成:context.xml/web.xml/server.xml/tomcat-users.xml
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
Tomcat默认监听端口为8080。可以通过修改server.xml文件来改变Tomcat的监听端口。
Tomcat Manager是Tomcat自带的、用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。 默认情况下,Tomcat Manager是处于禁用状态的。准确的说,Tomcat Manager需要以用户角色进行登录 并授权才能使用相应的功能,不过Tomcat并没有配置任何默认的用户,因此我们需要先进行用户配置后才 能使用Tomcat Manager。
Tomcat Manager中没有默认用户,我们需要在tomcat-users.xml文件配置。
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-users.xml
进入Tomcat的webapps目录下,打开webapps/manager/META-INF/context.xml文件,修改下面这段配置
启动一个server实例(即一个JVM进程),它监听在8005端口以接收shutdown命令。 Server的定义不能使用同一个端口,这意味着如果在同一个物理机上启动了多个Server实例, 必须配置它们使用不同的端口。
Port:接收关闭请求的端口,默认8005,若启动多个tomcat,需要配置多个不同端口
Shutdow:关闭请求指令,默认为SHUTDOWN
Service主要用于关联一个引擎和与此引擎相关的连接器,每个连接器通过一个特定的端口和协议接收 请求并将其转发至关联的引擎进行处理。困此,Service要包含一个引擎、一个或多个连接器
Name:服务器的名称,默认为Catalina
支持处理不同请求的组件,一个引擎可以有一个或多个连接器,以适应多种请求方式。 默认只开启了处理Http协议的连接器。如果需要使用其他协议,需要在Tomcat中配置该协议的连接器 在Tomcat中连接器类型通常有4种:HTTP连接器/SSL连接器/AJP 1.3连接器/proxy连接器
Port:监听的端口,为接收请求的端口,默认8080
Protocol:连接器使用的协议,默认HTTP/1.1;
connectionTimeout:等待客户端发送请求的超时时间,单位为毫秒;
redirectPort:如果支持的协议是HTTP,接HTTPS请求时,转发至此属性定义的端口
maxThreads:支持的最大连接数,默认为200
Engine是Servlet处理器的一个实例,即servlet引擎,定义在server.xml中的Service标签中。 Engine需要defaultHost属性来为其定义一个接收所有发往非明确定义虚拟主机的请求的Host组件
Name:引擎名称
defaultHost:在Engine中定义的多个虚拟主机的主机名称中至少要有一个跟defaultHost定义的主机名称同名
Host组件位于Engine容器中用于接收请求并进行相应处理的虚拟主机。
通过该容器可以运行Servlet或者JSP来处理请求
Name:虚拟主机名称
appBase:寻找放在tomcat的web资源的目录
autoDeploy:找到的web资源是否自动部署,默认为true;
unpackWARs:找到的web资源是否自动解压,默认为true;
若web资源不在webapps中,则需要此组件告诉虚拟主机web资源位置
Path:浏览器访问项目的访问路径(随便起名)
docBaseweb:资源位置
放在webapps下的资源都可以访问【http://localhost:8080/......】
默认访问webapps/ROOT/index.html【http://localhost:8080】
资源放在非webapps下(如D:\tomcat\index.html)--------配置架构组件conf-server.xml------- -------在Host组件下新添Context组件
Tomcat新建资源目录webapps2放置资源--------配置架构组件conf-server.xml--------
先修改编辑权限,右击C:\Windows\System32\drivers\etc\hosts------属性----安全----编辑----USers---------- ------权限:允许全部√-------修改hosts文件----最下面写上 127.0.0.1 jia