推荐一篇使用Servlet2.3的filter功能的文章

filter功能很强大,它相当于在浏览器和主机之间加了一道过滤墙,在其中可以实现一些独特的功能。

其中我认为最有用的是用户认证功能,现在我们的系统都需要注册用户,那么每个人在完成系统时,都要加上用户权限验证功能,用户权限验证一般是由其他人员开发,也是一个独立系统,如果在自己的程序中加入,主要是增大了耦合性,万一用户系统改变,所有人都要去改自己的程序。

将用户权限验证和注册功能设置在filter中,filter会拦截你指定的任何request或reponse,截获其中数据,验证用户权限。一般一个系统都是用一个WEB 容器,filter功能只要通过设置web.xml就可以作用于一个系统的所有页面,这样,其他人就不必在自己的系统中增加权限验证代码,只要发布到带有权限验证的WEB容器,就自动获得权限验证功能。

无疑,这一功能是令人激动而且提高开发效率的。

http://javaboutique.internet.com/tutorials/Servlet_Filters/redirect.html

是非常的强大,而且好用。
用来log也很不错,可以分别指定不同的模块
记录不同的东西。

zz:你好,你说的可不可以具体些,怎么指定不同的模块啊

filter和各个模块(一般对应到目录或某个servlet)之间的映射
关系是写在WEB-INF/web.xml里面的,比如有3个filter,那么可以
指定module1需要filter1和2、module2需要filter1和3、module3
只需要filter3等等

我是想知道具体怎么做呢?在web.xml怎么分模块啊,谢了。

举例如下:


<!--filter1:记录用户的ip和os-->
<filter>
<filter-name>LogFilter</filter-name>
<filter-class>com.xxx.filter.LogFilter</filter-class>
</filter>
<!--filter2:如果用户没有登陆,引导他登陆-->
<filter>
<filter-name>LogonFilter</filter-name>
<filter-class>com.xxx.filter.LogonFilter</filter-class>
</filter>

<!--所有request都必须经过LogFilter -->
<filter-mapping>
<filter-name>LogFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--所有/admin下的request都必须经过LogonFilter的验证 -->
<filter-mapping>
<filter-name>LogFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>

或者
<!--所有doc操作都必须经过LogonFilter的验证 -->
<filter-mapping>
<filter-name>LogFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>

注意,web.xml里不支持中文注释。

收到,谢谢,明白,收藏

可以使用他来高效的实现页面布局的模板功能。