Tomcat架构解析之Web请求处理

一、前言

    介绍网Catalina中Web应用的加载过程,这篇博客再来介绍一下他是如何处理Web应用请求的。

二、总体过程

    Tomcat通过org.apache.tomcat.util.http.Mapper维护请求链接与Host、Context、Wrapper等Container映射。同时,通过org.apache.catalina.connector.MapperListener监听器监听所有的Host、Context、Wrapper组件,在相关组件启动、停止时注册或者移除相关映射。

    此外,通过org.apache.catalina.connector.CoYoAdapter将Connector与Mapper、Container联系起来,当Connector接收到请求后,首先读取请求数据,然后调用CoyoteAdapter.service()方法完成请求处理。

    CoyoteAdapter.service的具体处理过程如下:
(1)根据Connector的请求和响应对象创建Servlet请求和响应。

(2)转换请求参数并且完成请求映射:

  • 请求URI解码,初始化请求的路径参数。
  • 检测URI是否合法,如果非法,则返回响应码400。
  • 请求映射,映射结果保存到org.apache.catalina.connector.Request.,appingData,类型为org.apache.tomcat.util.http.mapper.MappingData,请求映射处理最终会根据URI定位到一个有效的Wrapper。
  • 如果映射结果MappingData的redirectPath属性不为空(即为重定向请求),则调用org.apache.catalina.connector.Response.sendRedirect发送重定向并
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值