Tomcat 核心组件
Tomcat是 Apache 下的一个子项目,它具备 Web 服务器的所有功能,不仅可以监听接受请求并响应静态资源,而且可以在后端运行特定规范的 Java 代码 Servlet,同时将执行的结果以 HTML 代码的形式返回客户端。Tomcat 由一系列的组件构成,其中核心的组件有三个。
Web 容器:完成 Web 服务器的功能。
Servlet 容器:名字为 catalina,用于处理 Servlet 代码。
JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码。
Tomcat 请求处理
1.用户在浏览器中输入网址 localhost:8080/testindexjsp,请求被发送到本机端口 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 获得请求/testindex.jsp
5.path="/test"的 Context 获得请求/index.jsp,在它的 mapping table 中寻找出对应的Servlet。 Context 匹配到 URL Pattem 为*.jsp 的 Servlet,对应于 JspServlet 类;
6.构造 HttpServletRequest 对象和 HttpServletResponse 对象,作为参数调用 JspServlet的 doGet()或 doPost0),执行业务逻辑、数据存储等;
7.Context 把执行完之后的 HttpServletResponse 对象返回给 Host;
Tomcat 服务部署
在部署 Tomcat 之前必须安装好 JDK,因为 JDK是 Tomcat 运行的必要环境。JDK 的安装相对比较简单,版本有很多,本章选择基于 linux64 位 RPM 版本。
下载完安装包后,将其上传到服务器/root 目录下,执行安装命令。
rpm -ivh jdk-8u171-linux-x64.rpm
上面显示安装完成,jdk安装目录在lusr/iaval/idk1.8.0 171-amd64,,编辑/etc/profile文件,设置jdk 的环境变量。具体操作如下。
vim /etc/profile
exDort JAVA HOME=/usriava/idk1.8.0 171-amd64
exDort CLASSPATH=SJAVA HOMEЛibtools.jar:SJAVA HOMEЛlib/dt.iar
expOrt PATH=SJAVA HOME/bin:SPATH
source /etc/profile
ava -version //使环境变量生效
安装 Tomcat 服务
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.8/bin/apache-tomcat-9.0.8.tar.gz
tar zxf apachtomcat-9.0.8.tar.gz
tar zxf apache-tomcat-9.0.8.tar.gz
/usr/local/tomcat/bin/startup.sh //启动 Tomcat
优化 Tomcat 服务启动时间
査看日志会发现 Tomcat 第一次启动很慢,默认情况下都需要几十秒。修改 JDK 参数可以改善该状况,打开/usr/iavalidk1.8.0 171-amd64/ire/ib/security/iava.security 文件,找到如下内容:securerandom.source=file:/dev/random修改securerandom.source=file:/dev/urandom。然后重启 Tomcat 就会发现启动时间变短很多。
[root@localhost conf]# vim /usr/java/jdk1.8.0 171-amd64/jre/libsecurity/java.security
securerandom.source=fle:/dev/urandom
/usr/local/tomcatbin/shutdown.sh //关闭 Tomcat
/usr/local/tomcatbin/startup.sh //启动 Tomcat
Tomcat 目录结构
执行 l/usr/local/tomcat命令即可査看 Tomcat 安装后目录结构
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 配置与优化
mkdir /usr/local/tomcat/webappsh/www
echo "This is www page!"> /usr/localtomcatwebapps/wwwindex.jsp
mkdir /usr/local/tomcat/webapps/bbs
echo "This is bbs page!'> /usr/local/tomcat/webapps/bbslindex.jsp
修改 Tomcat 主配置文件
vim /usr/local/tomcat/conf/server.xm
/usr/local/tomcatbin/shutdown.sh
/usr/local/tomcatbin/startup.sh