返回介绍

11.3 DispatcherServlet

发布于 2025-04-22 22:09:17 字数 1522 浏览 0 评论 0 收藏

在 Spring 中,ContextLoaderListener 只是辅助功能,用于创建 WebApplicationContext 类型实例,而真正的逻辑实现其实是在 DispatcherServlet 中进行的,DispatcherServlet 是实现 servlet 接口的实现类。

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

(1)初始化阶段。

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

servlet 容器创建一个 ServletConfig 对象。ServletConfig 对象包含了 servlet 的初始化配置信息。

servlet 容器创建一个 servlet 对象。

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

(2)运行阶段。

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

(3)销毁阶段。

当 Web 应用被终止时,servlet 容器会先调用 servlet 对象的 destrory 方法,然后再销毁 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()。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。