2009年11月21日星期六

[note]Servlet中监听器(listener)与过滤器(filter)的区别

监听器(listener):
         用于监听事件的发生,与swing中的监听器类似。可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,如监听在线用户数量,当增加一个HttpSession时,给在线人数加1。编写监听器需要实现相应的接口,编写完成后在web.xml文件中配置一下,就可以起作用了,可以在不修改现有系统基础上,增加web应用程序生命周期事件的跟踪。
         常用的监听器如下:

Listener接口                                       Event类
ServletContextListener                       ServletContextEvent
ServletContextAttributeListener         ServletContextAttributeEvent
HttpSessionListener                           HttpSessionEvent
HttpSessionActivationListener            HttpSessionEvent
HttpSessionAttributeListener             HttpSessionBindingEvent
HttpSessionBindingListener                HttpSessionBindingEvent
ServletRequestListener                       ServletRequestEvent
ServletRequestAttributeListener         ServletRequestAttributeEvent

过滤器(filter):

          用于对服务器请求的过滤,它与监听器最大的不同是:监听器只能够监听请求而无法改变原来的请求、而过滤器可以改变任何请求。所有的过滤器都实现了filter接口中的doFilter方法来实现对请求的过滤,doFilter方法又使用了FilterChain这个传入的值实现过滤链,来进行层层的过滤。过滤器也同样需要对web.xml进行设置。

Servlet过滤器的适用场合:
A.认证过滤
B.登录和审核过滤
C.图像转换过滤
D.数据压缩过滤
E.加密过滤
F.令牌过滤
G.资源访问触发事件过滤
H. 其他

1 条评论:

heilpflanzen 说...

所有将在这篇文章显示了在Apache的Tomcat 4.0 Beta 1的Windows平台上的测试代码。这个Tomcat的具有完全支持新的Servlet 2.3规范和JSP 1.2规范版本。如果您需要帮助安装和设置Tomcat的参考詹姆斯亲善的文章安装和配置易于后续安装和配置Apache的Tomcat版本4.0 Beta 1的指导Tomcat的。