Javaweb-05-详细描述tomcat处理HTTP 请求的流程,tomcat组件介绍

tomcat处理HTTP 请求流程

  1. 在浏览器上输入http://localhost:8080/my-web-mave/index.jsp
  2. 请求被发送到本机端口8080,被在那里侦听的Connector获得
  3. Connector把请求交给它所在的Service的Engine来处理,并等待Engine的回应
  4. Engine获得请求localhost/my-web-maven/index.jsp,匹配它拥有的所有虚拟主机Host,我们的虚拟主机在server.xml默认配置是localhost
  5. Engine匹配到name=localhost的Host
  6. localhost Host获得请求/my-web-maven/index.jsp,匹配它所拥有的所有Context
  7. Host匹配到路径为/my-web-maven的Context(如果匹配不到就把该请求交给路径名为”"的Context去处理)
  8. path=”/my-web-maven”的Context获得请求/index.jsp,在它的mapping table中寻找对应的servlet
  9. Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
  10. 构造HttpServletRequest对象和HttpServletResponse对象返回给Host
  11. Host把HttpServletResponse对象返回给Engine
  12. Engine把HttpServletResponse对象返回给Connector
  13. Connector把HttpServletResponse对象返回给客户browser

tomcat组件介绍

server

最外层的核心组件,可以说启动一个tomcat就是启动一个server
作用:
1.提供了监听器机制,用于在tomcat整个生命周期中对不同事件进行处理
2.提供tomcat容器全局的命名资源实现
3.监听某个端口以接受SHUTDOWN命令

service

表示一个或多个Connector的集合,这些Connector共享一个Container 来处理其请求
同一个 Tomcat 实例内可以包含任意多个 Service 实例,它们彼此独立
Connector用于接受请求并将请求封装成Request和Response,然后给Container处理,处理完后交给Connector返回给客户端

Container

容器的父接口,用于封装和管理Servlet,具体处理Request请求

四大请求处理组件
Engine:表示整个Servlet引擎,最高层级的容器对象

引擎:可运行的Catalina的servlet引擎实例,包含servlet容器的核心功能。一个服务器只能有一个引擎。不是直接处理请求的容器,却是获取目标容器的入口,Engine元素下可包含一个或多个虚拟主机Host

Host:代表一个站点,也叫虚拟主机

通过配置Host可以添加站点, Host容器是Engine容器的子容器,其子容器是Context
例如:
访问具体JSP页面URL中localhost就是一个虚拟主机,其作用是运行多个应用,并对这些应用进行管理

Context: 用于表示Servletcontext的一类容器

在Servlet规范中,Servletcontext及一个独立的Web应用,代表一个应用程序,或者WEB-INF目录及下面的web.xml文件

Wrapper:用于表示Web应用中定义的Servlet的一类容器

每一个Wrapper封装这一个Servlet

两个核心组件

Connector
主要负责处理Socket连接,Request与Response的转化

Container
包括Engine、Host、Context和Wrapper,主要负责内部的处理及Servlet的管理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值