对于Tomcat的总结

一:tomcat实际上就是一个实现了tcp,http等协议的java程序,用来充当服务器(启动后默认监听8080端口,而浏览器就是客户端),有时也充当web容器。而servler就是web容器,web服务器如tomcat就是通过它来处理请求,简单概括就是,通过tomcat,我们可以把我们自己写的jsp,html等暴露供浏览器访问。

二:tomcat的基本组成:

1.server:可以监听某固定的端口,可以向该端口发送shutdown关闭命名

2.service:组件容器,包含了以下的组件

3.connector:监听组件,可以开启监听套接字,监听外界请求,并建立连接,还可以解析请求(协议及数据),并把这些信息发给engine,也可以响应数据

4.container:是一个容器,包含了engine,host,context和wrapper四个容器

5.engine:接收从connector传来的信息,并把信息发送给匹配的虚拟主机,一个engine可以配置多个host虚拟主机

6.host:定义虚拟主机,可以为每一个webapp指定根目录

7.context:局部上下文主要是根据Path和docBase获取项目的路径信息,部署项目时自动在host结点下创建该结点;全局上下文的context在context.xml文件里,该上下文定义了web.xml的位置,context会把所有信息交给wrapper进行处理

8.wrapper:wrapper代表一个servlet,对应servlet的处理过程,根据context提供的信息解析对应的web.xml文件,开始servlet的生命周期和负责装载对应的类

9.excutor:为每一个Service组件提供线程池,使得engine可以从线程池中获取一个线程来处理请求

 

三:tomcat处理静态资源过程(通过客户端发起访问一个jsp页面的过程)

请求:https://myhost:8080/helloWord/hello.jsp

当客户端访问该请求时,connector组件会监听到请求,解析该请求然后交给engine容器

engine容器匹配名为myhost的虚拟主机,并把对应参数传给虚拟主机,虚拟主机结合项目上下文context结点前往根目录下匹配项目。找到helloword,并把数据信息·交给全局上下文context.xml下的Context组件

Context将信息交给wrapper,wrapper根据Context提供的信息找到web配置文件web.xml,wrapper先去寻找helloword工程的私有web.xml,如果没有该请求的映射信息,则寻找全局即tomcat的web.xml(context.xml中的context结点定义了默认路径)

再通过servlet-,mapping结点匹配到对应的servlet结点,再通过servlet结点匹配到对应的Servlet类(如专门用来解析jsp的JspServlet)。JspServlet解析jsp页面,生成response,wrapper再把响应交给connector,从而返回给客户端

处理静态资源也差不多,只是不需要解析到全局web.xml,因为不需要用到JspServlet解析就可以直接返回给客户端了

 

注:connector,engine,host,局部context(项目部署了才有)组件可以在tomcat的servler.xml文件中找到,,全局context可以在context.xml下找到

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值