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

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

【问题讨论】:

    标签: java servlets servlet-filters


    【解决方案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)方法。

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 2012-10-07
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多