代码之家  ›  专栏  ›  技术社区  ›  Dead Programmer

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

  •  13
  • Dead Programmer  · 技术社区  · 14 年前

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

    2 回复  |  直到 14 年前
        1
  •  26
  •   Bozho    14 年前

    不,servlet和过滤器都是:

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

    到目前为止,我还想知道不同之处。我创建了一个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容器负责加载和实例化 servlets。当容器 在容器确定servlet为 需要服务请求。

    6.2.1过滤器生命周期

    在部署Web应用程序之后,在请求导致 要访问Web资源,容器必须找到 必须应用于Web资源的筛选器列表(如所述) 下面。容器必须确保已实例化的筛选器 列表中每个筛选器的相应类,并调用其 init(filterconfig config)方法。