servlet 生命周期和过滤器生命周期之间的区别

Posted

技术标签:

【中文标题】servlet 生命周期和过滤器生命周期之间的区别【英文标题】:difference between servlet lifecycle and filter lifecycle 【发布时间】:2011-04-16 17:06:14 【问题描述】:

servlet 和过滤器的生命周期有什么区别吗?

【问题讨论】:

【参考方案1】:

不,一个 servlet 和一个过滤器:

在上下文启动时实例化(一次) init(..) 方法被调用 他们处理每个请求 - 首先它通过所有过滤器,然后到达 servlet 当上下文被破坏时(即当你的容器停止,或者你的应用程序从管理控制台取消部署时),destroy(..) 方法被调用

【讨论】:

您的回答很好,但我认为它们的实例化时间有些不同。请检查我的答案:D。无论如何+1为您的答案:D【参考方案2】:

到目前为止,我还想知道这些差异。我创建了一个 Web 项目来观察它们的生命周期。可以在

http://dntuan-java-workspace.googlecode.com/svn/trunk/simple-web

一旦它部署在 tomcat 上,您可以从控制台观察日志以查看过滤器是否在 在上下文启动之前初始化。而 servlet 仅在 发出请求 时初始化(例如 http://localhost:8080/simple-web/servlet/life.jsp


更多信息来自JSR-000315 JavaTM Servlet 3.0:

2.3.1 加载和实例化

servlet 容器负责加载和实例化 小服务程序。容器的加载和实例化可以发生 启动,或者延迟到容器确定 servlet 是 需要为请求提供服务。

6.2.1 过滤器生命周期

在部署 Web 应用程序之后,在请求导致之前 容器要访问 Web 资源,容器必须找到 必须按所述应用于 Web 资源的过滤器列表 以下。容器必须确保它已经实例化了一个过滤器 列表中每个过滤器的适当类,并将其称为 init(FilterConfig config)方法。

【讨论】:

以上是关于servlet 生命周期和过滤器生命周期之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb应用和Servlet的生命周期

Filter--生命周期

Servlet的生命周期分为3个阶段:? 和CGI的区别

JSP 生命周期

JSP生命周期

Servlet是什么?JSP和Servlet的区别。Servlet的生命周期。