看了网上一篇译文《Servlet 2.3 过滤器编程》原文 《Filter code with Servlet 2.3 model 》出自http://www.javawold.com/。里面讲了四个例子,有三个意思不大,没有仔细看。
下面这个过滤器示例跟踪用户请求,向网络管理员报告谁在她的网站上以及每个用户正在访问那个页面。
测试结果图如下:
|
一、web.xml文件 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app> <!-- CLICKSTREAM LOGGER --> <filter> <filter-name>clickstreamFilter</filter-name> <filter-class>com.java3z.examples.ClickstreamFilter</filter-class> </filter>
<filter-mapping> <filter-name>clickstreamFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> |
|
<filter-mapping>
<filter-name>clickstreamFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>
<listener>
<listener-class>com.java3z.examples.ClickstreamLogger</listener-class>
</listener>
<!-- END CLICKSTREAM LOGGER -->
</web-app>
这注册了ClickstreamFilter并设置其处理*.jsp和*.html来的请求。这也将ClickstreamLogger注册为一个监听器以在应用事件发生时接受他们。
二、既是ServletContextListener又是 HttpSessionListener监听器ClickstreamLogger类