【发布时间】:2011-04-16 17:06:14
【问题描述】:
servlet 和过滤器的生命周期有什么区别吗?
【问题讨论】:
标签: java servlets servlet-filters
servlet 和过滤器的生命周期有什么区别吗?
【问题讨论】:
标签: java servlets servlet-filters
不,一个 servlet 和一个过滤器:
init(..) 方法被调用destroy(..) 方法被调用【讨论】:
到目前为止,我还想知道这些差异。我创建了一个 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)方法。
【讨论】: