Filter的意思是可以在Servlet实例进行实质性的处理之前,起到“过滤”的作用.
一个Filter可以过滤一个或多个Servlet,Filter必须实现javax.Servlet.Filter接口,并且必须定义以下三个方法:init(),destory(),doFilter().
下面的例子演示记录客户端主机信息的Filter:
当前web应用的web.xml配置为:
最后用myeclipse插件自动部署到tomcat路径下,启动tomcat,在浏览器中输入
http://localhost:8080/Filter/ (Filter为此web应用名称)
可以在tomcat 目录的log目录下的localhost.2006-01-02.log看到以下消息:
2006-1-2 16:25:51 org.apache.catalina.core.ApplicationContext log
信息: [127.0.0.1] request: /Filter/
2006-1-2 16:25:51 org.apache.catalina.core.ApplicationContext log
信息: [127.0.0.1] done
这表明logFilter已经被server调用成功.
当然在实际应用中filter还有其他用处,象登陆验证,编码转化等.
Java天下社区
http://www.javatx.cn欢迎大家上来交流Java技术。