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

版权声明:转载请注明本文源地址 https://blog.csdn.net/qwe6112071/article/details/77531040

顶层结构

  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并渲染给用户

猜你喜欢

转载自blog.csdn.net/qwe6112071/article/details/77531040