一、Tomcat介绍
- 免费的、开放源代码的Web应用服务器
- Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目
- 由Apache、Sun和一些公司及个人共同开发而成
- 深受Java爱好者的喜爱,并得到部分软件开发商的认可
- 目前比较流行的Web应用服务器
二、tomcat核心组件
■ Tomcat核心组件
通常意义上的Web服务器接受请求后,只是单纯地响应静态资源,如HTML文件,图片文件等,不能在后端进行一定的处理操作。Tomcat 是 Apache 下的一个子项目,它具备Web服务器的所有功能,不仅可以监听接受请求并响应静态资源,而且可以在后端运行特定规范的Java 代码Servlet,同时将执行的结果以HTML 代码的形式写回客户端。
■Tomcat由一系列的组件构成,其中核心的组件有三个:|
- Web容器:完成Web服务器的功能。
- Servlet容器:名字为catalina,用于处理Servlet代码。3)
- JSP容器:用于将JSP动态网页翻译成Servlet 代码。
三、tomcat处理请求过程
1.请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/11.1Connector获得。
2. Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应。
3. Engine获得请求localhost/yy/index.JSP匹配它所拥有的所有虚拟主机Host,
4. Engine匹配到名为localhost的Host。即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机
5. localhost Host获得请求/yy/index.JSP,匹配它所拥有的所有Context。
6. Host匹配到路径为/yy的Context。如果匹配不到,就把该请求交给路径名为Context去处理。
7. path=”ly”的Context 获得请求/index.JSP,在它的mapping table中寻找对应的Servlet,
8. Context匹配到URL PATTERN为*.JSP的Servlet,对应于JSPServlet类。
9. 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JSPServlet的doGet()或doPost()方法。
10. Context把执行完了之后的HttpServletResponse对象返回给Host,
11. Host把HttpServletResponse对象返回给Engine.
12. Engine把HttpServletResponse对象返回给Connector.
13.- Connector把HttpServletResponse对象返回给客户browser.
四、部署tomcat
基础部署
[root@localhost bin]# systemctl stop firewalld ###关闭防火墙
[root@localhost bin]# setenforce 0 ###关闭核心防护
将jdk包传上去
[root@localhost ~]# rpm -ivh jdk-8u221-linux-x64.rpm ###装一下jdk
/usr/java/jdk1.8.0_221-amd64 ###刚刚解压出来的jdk工作目录
设置JDK环境变量
[root@localhost jdk1.8.0_221-amd64]# vim /etc/profile
末尾添加
export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64 ###声明一下jdk工作目录的位置
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar ###指定类文件的位置
export PATH=$JAVA_HOME/bin:$PATH ###环境变量
[root@localhost jdk1.8.0_221-amd64]# source /etc/profile ###刷新一下
[root@localhost jdk1.8.0_221-amd64]# java -version ###这个用这条看一下jdk版本就会变更
安装tomcat
上传tomcat包到服务器
[root@localhost ~]# tar zxvf apache-tomcat-8.5.23.tar.gz -C /usr/local/ ###解压到local目录里
[root@localhost local]# cd /usr/local/ ###进入到安装目录
[root@localhost local]# mv apache-tomcat-8.5.23/ tomcat ###名称太长了,改成tomcat
[root@localhost bin]# ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/ ###将startup.sh放到bin目录下
[root@localhost bin]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/ ###将shutdown.sh也放到bin目录下
[root@localhost bin]# startup.sh ###启动起来
[root@localhost bin]# netstat -anpt | grep 8080 ###就能查看到8080端口开启了
浏览器输入:20.0.0.22:8080就能看见tomcat网页
五、优化
启动startup.sh有点慢,优化tomcat启动速度
[root@localhost lib]# cd /usr/java/jdk1.8.0_221-amd64/jre/lib/security/
[root@localhost security]# vim java.security
securerandom.source=file:/dev/urandom ###里面这句话就改成urandom
[root@localhost security]# startup.sh ###在启动就很快