Tomcat和SpringMVC结果梳理和请求处理流程小结

18 篇文章 0 订阅
2 篇文章 0 订阅

顶层结构

  1. 最顶层是Server,由Catalina管理,包含load,start,stop用来管理整个服务器的生命周期
  2. 一个Server包含多个Service
  3. Service主要包含两部分:Connector和Container,一个Service只有一个Container,但可以又多个Connector,用于提供不同的连接请求(如http和https)
    1. Connector处理连接相关,提供Socket和Request、Response之间的转化
    2. Container用于封装和管理Servlet,以及处理具体的Request请求

容器

Tomcat有4层容器:
1. Engine,一个容器只有一个,用来管理多个站点
2. Host,对应一个站点,虚拟主机
3. Context,对应一个应用
4. Wrapper,对应一个Servlet

Servlet结构

顶层Servlet

顶层的Servlet定义了5个方法,分别是
1. init.初始化Servlet
2. destroy销毁servlet
3. service,实际处理请求
4. getServletConfig,返回Servlet的初始化参数和Servlet上下文
5. getServletInfo,获取Servlet相关信息,需要自己实现

Servlet实现类

GenericServlet

  1. 实现了SevletConfig接口,便于直接调用SevletConfig方法
  2. 提供了无参的init方法
  3. 提供了日志支持

HttpServlet

  1. 将ServletRequest,ServletResponse转化为HttpServletRequest,HttpServletResponse。
  2. 根据Http请求类型路由到不同的处理方法

SpringMVC相关

HttpServletBean

直接集成HttpServlet,将Servlet中的配置参数设置到相应的属性中

FrameworkServlet

初始化了SpringMVC中所使用的WebApplicationContext。

DispacherServlet

初始化具体处理请求的9大组件,并处理具体请求。
核心处理流程:
1. 调用doService方法将WebApplicationContext等设置到request的属性方便使用,然后调用doDispacher方法进行具体处理
2. doDispacher处理分为5步
1. 首先检查是否位上传请求,
2. 根据Request在HandlerMapping中找到相应的Handler
3. 根据找到的Handler找处理这个Handler的HanlderAdaptor
4. 用HandlerAdaptor调用Handler处理请求
5. 然后调用processDispacherResult处理Handler处理后结果,比如处理异常或找到相应的view并渲染给用户

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值