Tomcat介绍
- Tomcat免费的、开放源代码的Web应用服务器,属于轻量级应用服务器
- 在中小型系统和并发访问用户不是很多的场合下被普遍使用
是开发和调试JSP程序的首选
Tomcat核心组件
- web容器:完成Web服务器的功能
- Servlet 容器:名字为catalina, 用于处理Servlet代码
- jsp容器:用于将JSP动态网页翻译成Servlet代码
JavaServlet及jsp容器
- JavaServlet
- JavaServlet是运行在Web服务器或应用服务器上的程序,它是作为来自web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。使用Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。与CGI (公共网关接口)功能相类似
- Jsp容器
- 是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头 以%>结束。JSP是一 种Java servlet,主要用于实现Java web应用程序的用户界面部分
JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页
Tomcat顶层架构
- Tomcat中最顶层的容器是Server, 代表着整个服务器,一个Server可以包含至少- -个Service, 用于具体提供服务
- Service主要包含两个部分: Connector 和Container. Tomcat 的心脏就是这两个组件,这两个组件的作用: Connector用 于处理连接相关的事情,并提供Socket 与Request和Response相关的转化;Container用于封装和管理Servlet,以及具体处理Request请求
- 一个Tomcat中只有一 个Server,一个Server可以包含多个Service, 一 个Service只有一个Container, 但是可以有多个Connectors, 因为一个服务可以有多个连接,如同时提供Http和Https链接,也可以提供向相同协议不同端口的连接
- 多个Connector和一个Container 就形成了一个Service, 有了Service 就可以对外提供服务了,但是Service还要一个生存的环境, 必须要有 人能够给她生命、掌握其生死大权,那就非Server 莫属了!所以整个Tomcat 的生命周期由Server控制。另外,上述的包含 关系或者说是父子关系,都可以在tomcat的conf目录下的server . xml配置文件中看出
- server.xml中定 义<Server port-" 8005”shutdown-" SHUTDOWN">这会让Tomcat6启动- -个server实例 (即-一个JVM),它监听在8005端口以接收“SHUTDOWN"命令,如果接收到了就会关闭Tomcat。各Server
的定义不能使用同一-个端口,这意味着如果在同- -个物理机上启动了多个Server实例,必须配置它们使用不同的端口
4个子容器的作用
- Engine:引擎,用来管理多个站点,一个Service最多只能有一个Engine
- Host:代表一个站点,也可以叫虚拟主机,通过配置Host就可以添加站点
- Context: 代表一个应用程序,对应着平时开发的一套程序, 或者一个WEB-INF目录以及下而的web. xml文件
- Wrapper: 每一 -Wrapper封装着一个Servlet
Tomcat请求过程
- 用户在浏览器中输入该网址,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector 获得
- Connector把该请求交给它所在的Service的Engine (ContaineEngine获得请求localhost/test/index. jsp,匹配所有的虚拟主机Hostr) 来处理,并等待Engine的回应
- Engine获得请求localhost/test/index. jsp,匹配所有的虚拟主机Host
- Engine匹配到名为localhost的Host (即使匹配不到也把请求交给该Host处理,因为该Host 被定义为该Engine的默认主机),名为localhost的Host获得请求/test/index.jsp,匹配它所拥有的所有Context。Host匹配到路径为/test的Context (如果匹配不到就把该请求交给路径名为" "的Context去处理)
- path-" /test"的Context获得请求/index. jsp,在它mapping table中寻找出对应的Servlet. Context匹配到URLPattern为* . jsp的Servlet,对应于JspServlet类
- 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet ()或doPost(),执行业务逻辑、数据存储等
- Context把执行完之后的HttpServletResponse对象返回给Host
- Host把HttpServletResponse对象返回给Engine
- Engine把HttpServletResponse对象返回Connector
- Connector把HttpServletResponse对象返回给客户Browser
Tomcat服务部署
- 关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210614194257294.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81NTYwOTgxNg==,size_16,color_FFFFFF,t_70#pic_center)
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version /查看目前java运行环境版本
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210614194927421.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81NTYwOTgxNg==,size_16,color_FFFFFF,t_70#pic_center)
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin