Spring 源码分析(四) ——MVC(四)核心逻辑

DispatcherServlet 的设计

        Spring MVC 的本质其实就是一个 Servlet,而上一篇提到了 DispatcherServlet,咱们知道 Spring MVC 真正的逻辑实际上是在 DispatcherServlet 中进行的,而 DispatcherServlet 偏偏就是实现 Servlet 接口的实现类。
java

        下面是 DispatcherServlet 的继承图:
数据库

        其实,DispatcherServlet 的设计大体就是 Spring MVC 总体结构了,下面是他的主要逻辑部分:服务器

        咱们在前面的Spring MVC 核心架构方面已经有所说起,下面咱们就着重的介绍。
架构


Sevrlet 补充说明

        servlet 是一个 Java 编写的程序,此程序是基于开篇介绍的 HTTP 协议的,在服务器端运行的(如:Tomcat),是按照 servlet 规范编写的一个 Java 类。主要是处理客户端的请求并将其结果发送到客户端。servlet 的生命周期是由 servlet 容器来控制的,它能够分为 3 个阶段:初始化阶段、运行阶段和销毁阶段框架


        初始化阶段:post

            servlet 容器加载 servlet 类,把 servlet 类的 .class 文件中的数据读到内存中。spa

            servlet 容器建立一个 servletConfig 对象。servletConfig 对象包含了 servletConfig 的初始化配置信息。设计

            servletConfig 容器建立一个 servlet 对象。orm

            servletConfig 容器调用 servlet 对象的 ini 方法进行初始化。对象


        运行阶段:

            当 servlet 容器接收到一个请求时,servlet 容器会针对这个请求建立 servletRequest 和 ServletResponse 对象,而后调用 service 方法。并把这两个参数传递给 servlet 方法。servlet 方法经过 servletRequest 对象得到请求的信息。并处理该请求。再经过 servletResponse 对象生成这个请求的响应结果。而后销毁 servletRequest 和 servletResponse 对象。咱们无论这个请求时 post 提交的仍是 get 提交的,最终这个请求都会由 servlet 方法来处理。


        销毁阶段:

            当 Web 应用被终止时,servlet 容器会先调用 servlet 对象的 destroy 方法,而后再销毁 servlet 对象,同时也会销毁与 servlet 对象相关联的 servletConfig 对象。咱们能够在 destroy 方法的实现中,释放 servlet 所占用的资源,如关闭数据库链接,关闭文件输入输出流等。


            servlet 的框架是由两个 Java 包组成的:javax.servlet 和 javax.servlet.http。在 javax.servlet 包中定义了全部的 servlet 类都必须实现或扩展的通用接口和类,在 javax.servlet.http 包中定义了采用 HTTP 通讯协议的 HttpServlet 类。

            servlet 被设计成请求驱动,servlet 的请求可能包含多个数据项,当 Web 容器接收到某个 servlet 请求时,servlet 把请求封装成一个 HttpServletRequest 对象,而后把对象传给 servlet 的对应服务方法。

            HTTP 的请求方式包括 delete、get、options、post、put 和 trace,在 HttpServlet 类中分别提供了相应的服务方法,它们是 doDelete(),doGet()、doOptions()、doPost()、doPut()和 doTrace()。



——水门(2016年3月写于武汉)

相关文章
相关标签/搜索