核心组件
- Web容器:完成Web服务器的功能
- Web是可以通过http或者https进行访问的一个页面,在Linux系统中就是一个文件,Web容器就是封装了这样一组文件,并对这些对象进行集中化管理
- 在实际的作用上
1.Web容器就是接收客户端的请求,将请求分发到指定位置后,等待结果返回,最后将结果响应给客户端
2.展示动态页面
- JSP容器:将JSP动态页面(比如index.jsp)翻译成Servlet代码
- JSP动态页面是用Java写的,需要将它翻译成Servlet代码的格式
- Servlet容器:借助于Catalina来处理Servlet代码
- 可以把Servlet看作是一个中间件,包含了接口和方法,将客户端和数据库(后端服务)连接,从而实现动态网页的创建
功能组件结构
Tomcat 的核心功能有两个:
- 连接器 Connector:负责对外接收和响应请求,通过监听端口接收请求,将请求传递给容器进行业务处理,最后将处理后的结果再响应回去
- 容器 Container:负责对内处理业务逻辑,由Engine、Host、Context和Wrapper 四个子容器组成,用于管理和调用Servlet
Connector和Container加上一些其他组件构成了Service(Connector+Container≈Service),Tomcat可以管理多个Service
Container结构分析:
每个Service都会包含一个Container
- Engine:引擎,管理虚拟主机,一个Service中只能有一个
- Host:一台虚拟主机(站点),通过配置Host可以添加站点
- Context:一个Web应用,包含了多个Servlet封装器,注意是Servlet封装器
- Wrapper:封装器,每一个Wrapper封装着一个Servlet,负责实例对象的创建、执行和销毁
这四个子容器是父子关系:一个Engine管理多个Host,一个Host管理多个Context,一个Context有多个Wrapper
Tomcat的请求过程
- 用户在浏览器中进行访问,请求被发送到8080端口,监听8080端口的Connector接收了请求
- Connector把请求发送到它自己所在的Service中的Container中的Engine来处理,自己进入等待回应的状态
- 根据请求的内容依照Engine、Host、Context、Wrapper的顺序进行依次请求,最后由Wrapper中的Servlet执行对应的业务
- 执行完毕后再依照Wrapper、Context、Host、Engine的顺序依次响应,最后返回给Connector,Connector再响应给客户端
实验:Tomcat部署
- 关闭防火墙
- 安装JDK
- 设置JDK环境变量
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:$PATH
刷新一下
source /etc/profile.d/java.sh
用java -version看一下,如果长下面这样就算ok了
- 安装并启动Tomcat
tar zxvf apache-tomcat-9.0.16.tar.gz
重命名,方便使用
mv apache-tomcat-9.0.16 /usr/local/tomcat
后台启动
/usr/local/tomcat/bin/catalina.sh start
在浏览器输入IP+端口查看是否是Tomcat的默认页面