2012-03-21 49 views

回答

10

A Filter拦截与其URL模式匹配的HTTP请求,并允许您修改它们。也其javadoc参见:

过滤器是在任一请求到资源(servlet或静态内容)执行滤波任务的对象,或者在从一个资源,或两者的响应。

过滤器在doFilter方法中执行过滤。每个Filter都可以访问FilterConfig对象,通过该对象可以获取其初始化参数,以及对其可用于加载过滤任务所需资源的ServletContext的引用。

过滤器是在Web应用程序的部署描述符中配置的。已发现此设计

实例是:

  • 认证过滤器
  • 日志记录和审计过滤器
  • 图像转换过滤器
  • 数据压缩过滤器
  • 加密过滤器
  • 标记化过滤器
  • 个过滤器触发的资源访问事件
  • XSL/T过滤
  • MIME类型链过滤

上的web应用的启动和关闭ServletContextListener拦截,并允许您在启动时执行一些代码和/或关掉。另见javadoc

用于接收有关ServletContext生命周期变化的通知事件的接口。

为了接收这些通知事件,实现类必须是在Web应用程序的部署描述符,以WebListener注释,或通过对ServletContext定义的addListener方法之一注册。此接口的

实现在其中它们已被声明的顺序其contextInitialized(javax.servlet.ServletContextEvent)方法被调用,并且在以相反的顺序其contextDestroyed(javax.servlet.ServletContextEvent)方法。

何时使用这一个或另一个现在应该是显而易见的。如果您想要拦截HTTP请求以制作特定的URL模式,请使用Filter,因为您要检查/修改HTTP请求/响应。如果您想拦截webapp的启动和/或关机,请使用ServletContextListener

请知道在哪里可以找到javadocs以及如何解释它们。它们包含所有这些小问题的答案。

+0

您提供了比java文档中更多有用的信息。那谢谢啦。 – BestPractices 2012-03-22 01:58:07