TOMCAT工作原理

Tomcat之工作原理

一、TOMCAT描述

  1. tomcat是java web应用服务器,实现了Java EE部分技术规范,比如 Java Servlet、Java Server Page、JSTL、Java WebSocket。Java EE 是 Sun 公 司为企业级应用推出的标准平台,定义了一系列用于企业级开发的技术规范,除了上述的之外,还有 EJB、Java Mail、JPA、JTA、JMS 等,而这些都依赖具体容器的实现。
  2. tomcat也是JSP/Servlet容器,在作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。

二、TOMCAT组成及原理

  • Server:指的就是整个 Tomcat 服 务器,包含多组服务,负责管理和 启动各个 Service,同时监听 8005 端口发过来的 shutdown 命令,用 于关闭整个容器 ;
  • Service:Tomcat 封装的、对外提 供完整的、基于组件的 web 服务, 包含 Connectors、Container 两个 核心组件,以及多个功能组件,各 个 Service 之间是独立的,但是共享 同一 JVM 的资源 ;
  • Connector:Tomcat 与外部世界的连接器,监听固定端口接收外部请求,传递给 Container,并 将 Container 处理的结果返回给外部;
  • Container:Catalina,Servlet 容器,内部有多层容器组成,用于管理 Servlet 生命周期,调用 servlet 相关方法。
  • Loader:封装了 Java ClassLoader,用于 Container 加载类文件;
  • Realm:Tomcat 中为 web 应用程序提供访问认证和角色管理的机制;
  • JMX:Java SE 中定义技术规范,是一个为应用程序、设备、系统等植入管理功能的框架,通过 JMX 可以远程监控 Tomcat 的运行状态;
  • Jasper:Tomcat 的 Jsp 解析引擎,用于将 Jsp 转换成 Java 文件,并编译成 class 文件。
  • Session:负责管理和创建 session,以及 Session 的持久化(可自定义),支持 session 的集群。
  • Pipeline:在容器中充当管道的作用,管道中可以设置各种 valve(阀门),请求和响应在经由管 道中各个阀门处理,提供了一种灵活可配置的处理请求和响应的机制。
  • Naming:命名服务,JNDI, Java 命名和目录接口,是一组在 Java 应用中访问命名和目录服务的 API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象,目录服务也是一种命名 服务,对象不但有名称,还有属性。Tomcat 中可以使用 JNDI 定义数据源、配置信息,用于开发 与部署的分离。

  1.Container组成

#http://tomcat.apache.org/下载tomcat
#解压下载的安装包
[root@localhost ~]# tar -xf apache-tomcat-8.5.45.tar.gz -C /usr/local/
#创建链接
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ln -sv apache-tomcat-8.5.45 tomcat
  • Engine:Servlet 的顶层容器,包含一 个或多个 Host 子容器;
  • Host:虚拟主机,负责 web 应用的部 署和 Context 的创建;
  • Context:Web 应用上下文,包含多个 Wrapper,负责 web 配置的解析、管 理所有的 Web 资源;
  • Wrapper:最底层的容器,是对 Servlet 的封装,负责 Servlet 实例的创 建、执行和销毁。

  2.其它组件

  • Logger:日志记录器,一般不能用于context
  • WatchedResource:用于context中监视指定的webapp程序文件的改变,并且能够在监视到文件内容发生改变时重新装载此文件
  • manager:用于实现会话管理的功能;

三、TOMCAT安装

#http://tomcat.apache.org/下载安装包
#解压安装包
[root@localhost ~]# tar -xf apache-tomcat-8.5.45.tar.gz -C /usr/local/
#创建链接
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ln -sv apache-tomcat-8.5.45 tomcat
#配置环境
[root@localhost tomcat]# vim /etc/profile.d/tomcat.sh

export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$CATALINA_HOME/bin

[root@localhost local]# chmod +x /etc/profile.d/tomcat.sh 
[root@localhost local]# . /etc/profile.d/tomcat.sh 
[root@localhost tomcat]# catalina.sh version  #能够列出信息表示成功

四、TOMCAT目录结构

[root@localhost tomcat]# tree -L 1 
.
├── bin                  #存放启动和关闭tomcat脚本
├── BUILDING.txt         #说明编译tomcat源码的详细步骤文件
├── conf                 #存放不同的配置文件(server.xml和web.xml)
├── CONTRIBUTING.md
├── lib                  #存放web应用能访问的JAR包
├── LICENSE
├── logs                 #Catalina和其它Web应用程序的日志文件
├── NOTICE               #注意事项说明
├── README.md            #
├── RELEASE-NOTES
├── RUNNING.txt          #运行说明文件
├── temp                 #临时文件
├── webapps              #Web应用程序根目录
└── work                 #用以产生有JSP编译出的Servlet的.java和.class文件

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范。在Tomcat中,通过一系列处理流程和映射器功能来处理请求并找到对应的虚拟站点和Servlet。 首先,Tomcat会读取并解析server.xml文件,该文件位于tomcat/conf目录下。在server.xml中,可以配置多个虚拟主机(Host)和对应的上下文(Context)。 接下来,Tomcat会解析Host的默认配置,即EngineName/HostName/context.xml.default文件。在这个文件中,可以配置某个虚拟主机的默认上下文配置。 然后,Tomcat会解析应用的META-INF/context.xml文件。这个文件是每个Web应用程序的上下文配置文件,其中可以配置应用程序特定的参数和资源。 通过上述解析过程,Tomcat能够找到对应的虚拟站点和Servlet。根据请求的路径,Tomcat会使用映射器功能来判断请求应该由哪个虚拟站点处理。而在虚拟站点中,Tomcat会根据请求路径再次使用映射器功能来找到对应的Servlet。 总结起来,Tomcat通过解析配置文件和使用映射器功能来实现请求的路由和Servlet的匹配。这样,Tomcat就能够根据请求路径找到对应的虚拟站点,并通过映射器找到对应的Servlet来处理请求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [tomcat工作原理](https://blog.csdn.net/dongcheng_2015/article/details/117091790)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Tomcat 原理分析](https://blog.csdn.net/alongbigbig/article/details/120117178)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值