Tomcat介绍

■免费的、开放源代码的Web应用服务器 ■Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目 ■由Apache、Sun和一 些公司及个人共同开发而成 ■深受Java爱好者的喜爱,并得到部分软件开发商的认可 ■目前比较流行的Web应用服务器

Tomcat核心组件

在这里插入图片描述

Tomcat处理请求过程

在这里插入图片描述 1.用户在浏览器中输入网址localhost:8080/test/index.jsp,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得;

2.Connector把该请求交给它所在的Service的Engine(Container)来处理,并等待Engine的回应;

3.Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host;

4.Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhost的Host获得请求/test/index.jsp,匹配它所拥有的所有Context。Host匹配到路径为/test的Context(如果匹配不到就把该请求交给路径名为“ ”的Context去处理);

5.path=“/test”的Context获得请求/index.jsp,在它的mapping table中寻找出对应的Servlet。Context匹配到URL Pattern为*.jsp的Servlet,对应于JspServlet类;

6.构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost(),执行业务逻辑、数据存储等;

7.Context把执行完之后的HttpServletResponse对象返回给Host;

8.Host把HttpServletResponse对象返回给Engine;

9.Engine把HttpServletResponse对象返回Connector;

10.Connector把HttpServletResponse对象返回给客户Browser。

Tomcat目录结构

[root@localhost ~]# ll /usr/local/tomcat/
总用量 124
drwxr-x--- 2 root root  4096 3月   7 22:34 bin
-rw-r----- 1 root root 19203 2月   5 00:32 BUILDING.txt
drwx------ 3 root root   254 3月   7 22:36 conf
-rw-r----- 1 root root  6095 2月   5 00:32 CONTRIBUTING.md
drwxr-x--- 2 root root  4096 3月   7 22:34 lib
-rw-r----- 1 root root 57092 2月   5 00:32 LICENSE
drwxr-x--- 2 root root   197 3月   7 22:36 logs
-rw-r----- 1 root root  2333 2月   5 00:32 NOTICE
-rw-r----- 1 root root  3255 2月   5 00:32 README.md
-rw-r----- 1 root root  6854 2月   5 00:32 RELEASE-NOTES
-rw-r----- 1 root root 16262 2月   5 00:32 RUNNING.txt
drwxr-x--- 2 root root    30 3月   7 22:34 temp
drwxr-x--- 7 root root    81 2月   5 00:31 webapps
drwxr-x--- 3 root root    22 3月   7 22:36 work

----------------------------------------------------------
●bin
存放启动和关闭 Tomcat 的脚本文件,比较常用的是 catalina.sh、startup.sh、
shutdown.sh 三个文件

●conf
存放 Tomcat 服务器的各种配置文件,比较常用的是 server.xml、context.xml、
tomcat-users.xml、web.xml 四个文件。

●lib
存放 Tomcat 服务器的 jar 包,一般不作任何改动,除非连接第三方服务,比如 redis,
那就需要添加相对应的 jar 包

●logs
存放 Tomcat 日志

●temp
存放 Tomcat 运行时产生的文件

●webapps
存放项目资源的目录

●work
Tomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到

Tomcat部署步骤

第一步:通过Windows下载并共享安装JDK

在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境。

[root@localhost ~]# smbclient -L //192.168.235.1		
#远程共享
	Sharename       Type      Comment
	---------       ----      -------
	ADMIN$          Disk      远程管理
	tomcat          Disk     

[root@localhost ~]# mkdir /abc
[root@localhost ~]# mount.cifs //192.168.235.1/tomcat /abc
#挂载tomcat共享文件到Linux本地目录中

[root@localhost ~]# cd /abc		#进入本地目录查看
[root@localhost abc]# ls
12D18CFCD6599AFF0445766ACC4CA231C5025773.torrent
apache-jmeter-5.1
apache-jmeter-5.1.zip
apache-tomcat-9.0.16.tar.gz
jdk-11.0.5_windows-x64_bin.exe
jdk-8u152-windows-x64.exe
jdk-8u201-linux-x64.rpm
tomcat优化压测.jmx

[root@localhost abc]# rpm -ivh jdk-8u201-linux-x64.rpm 
#安装JDK

第二步:确认JDK安装的目录路径

[root@localhost ~]# cd /usr
[root@localhost usr]# ls
bin  games    java  lib64    local  share  tmp
etc  include  lib   libexec  sbin   src
#切入/usr目录见java目录

[root@localhost usr]# cd java/
[root@localhost java]# ls
default  jdk1.8.0_201-amd64  latest
#切入java目录可见jdk1.8.0_201-amd64文件

[root@localhost java]# cd jdk1.8.0_201-amd64/
[root@localhost jdk1.8.0_201-amd64]# pwd
/usr/java/jdk1.8.0_201-amd64
#确认安装路径

第三步:设置环境变量/etc/profile文件

[root@localhost java]# vim /etc/profile
#在文件的末行追加一下三条申明条目
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
#申明java的工作目录

export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
#申明java类文件的位置

export PATH=$JAVA_HOME/bin:$PATH
#申明java环境变量

[root@localhost java]# source /etc/profile
#生效环境变量

第四步:安装并启动Tomcat服务

[root@localhost java]# cd /abc
[root@localhost abc]# tar zxvf apache-tomcat-9.0.16.tar.gz -C /usr/local/
#解压tomcat包到/usr/local/目录中

[root@localhost abc]# cd /usr/local/		#切入/usr/local/	目录中可见apache-tomcat-9.0.16
[root@localhost local]# ls
apache-tomcat-9.0.16  etc    include  lib64    sbin   src
bin                   games  lib      libexec  share

[root@localhost local]# mv apache-tomcat-9.0.16/ tomcat		#改名apache-tomcat-9.0.16文件为tomcat
[root@localhost local]# ls
bin  games    lib    libexec  share  tomcat
etc  include  lib64  sbin     src

[root@localhost local]# cd tomcat/bin/		#切入tomcat目录下的bin目录,这里有控制tomcat服务的脚本
[root@localhost bin]# ls
bootstrap.jar                 configtest.sh     shutdown.sh
catalina.bat                  daemon.sh         startup.bat
catalina.sh                   digest.bat        startup.sh
catalina-tasks.xml            digest.sh         tomcat-juli.jar
ciphers.bat                   makebase.bat      tomcat-native.tar.gz
ciphers.sh                    makebase.sh       tool-wrapper.bat
commons-daemon.jar            setclasspath.bat  tool-wrapper.sh
commons-daemon-native.tar.gz  setclasspath.sh   version.bat
configtest.bat                shutdown.bat      version.sh

[root@localhost bin]# ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/
#创建tomcat启动脚本的软链接到系统目录中,方便系统识别
[root@localhost bin]# ln -s /usr/local/tomcat/bin/shutdown.up.sh /usr/bin/
#创建tomcat关闭脚本的软链接到系统目录中,方便系统识别

[root@localhost bin]# startup.sh 		#启动tomcat服务
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

[root@localhost bin]# systemctl stop firewalld.service 
[root@localhost bin]# setenforce 0
#关闭防火墙与增强型安全功能

[root@localhost bin]# netstat -ntap | grep 8080		查看tomcat服务的8080端口状态
tcp6       0      0 :::8080                 :::*                    LISTEN      39596/java  

第五步:浏览Tomcat的默认主页

在浏览器中输入http://192.168.235.158:8080即可访问到网页 在这里插入图片描述

第六步:优化Tomcat启动时间

[root@localhost bin]# vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security
#修改java.security参数

securerandom.source=file:/dev/urandom
#检索到random参数条目,将random修改为urandom,以缩短启动时间

[root@localhost bin]# startup.sh 		#此时秒启服务
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

谢谢阅读!!!