主题:使用Filter技术防止用户非法访问页面
作者:蔡毅
时间:2005-6-3
一 Filter概述
Filter 技术是servlet 2.3 新增加的功能,它新增加的功能包括:
1. 应用程序生命周期事件控制
2. 新的国际化
3. 澄清了类的装载规则;
4. 新的错误及安全属性;
5. 不赞成使用HttpUtils 类
6. 各种有用的方法
7. 阐明并扩展了几个servlet DTD
8. filter功能
其中最重要的就是filter功能。它使用户可以改变一个request和修改一个response,
Filter 不是一个servlet,它不能产生一个response它能够在一个request到达servlet之前
预处理request,也可以在离开servlet时处理response。换种说法,filter其实是一个
“servlet chaining”(servlet 链)。
一个filter 包括:
1. 在servlet被调用之前截获
2. 在servlet被调用之前检查servlet request
3. 根据需要修改request头和request数据
4. 根据需要修改response头和response数据
5. 在servlet被调用之后截获
二 Filter在检修ABC系统中的应用
检修ABC系统在初期搭建框架的时候决定使用Filter来处理用户非法访问URL以及Session过期等问题。
我们首先定义了一些可以通过URL直接访问的页面,如登陆页面,重登陆页面等。当用户没有登陆而
尝试访问受保护的URL时,Filter将拦截该请求,并把访问的URL重定向到登陆页面。
在web.xml中的配置如下:
<filter>
<filter-name>filterservlet</filter-name>
<filter-class>com.comtop.app.common.FilterServlet</filter-class>
<init-param>
<param-name>freePages</param-name>
<param-value>
/Login.jsp;/LoginAction.do;/index.jsp;/ReLogin.jsp;/SSOLoginAction.do;
</param-value>
</init-param>
<init-param>
<param-name>toPage</param-name>
<param-value>/ReLogin.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>filterservlet</
作者:蔡毅
时间:2005-6-3
一 Filter概述
Filter 技术是servlet 2.3 新增加的功能,它新增加的功能包括:
1. 应用程序生命周期事件控制
2. 新的国际化
3. 澄清了类的装载规则;
4. 新的错误及安全属性;
5. 不赞成使用HttpUtils 类
6. 各种有用的方法
7. 阐明并扩展了几个servlet DTD
8. filter功能
其中最重要的就是filter功能。它使用户可以改变一个request和修改一个response,
Filter 不是一个servlet,它不能产生一个response它能够在一个request到达servlet之前
预处理request,也可以在离开servlet时处理response。换种说法,filter其实是一个
“servlet chaining”(servlet 链)。
一个filter 包括:
1. 在servlet被调用之前截获
2. 在servlet被调用之前检查servlet request
3. 根据需要修改request头和request数据
4. 根据需要修改response头和response数据
5. 在servlet被调用之后截获
二 Filter在检修ABC系统中的应用
检修ABC系统在初期搭建框架的时候决定使用Filter来处理用户非法访问URL以及Session过期等问题。
我们首先定义了一些可以通过URL直接访问的页面,如登陆页面,重登陆页面等。当用户没有登陆而
尝试访问受保护的URL时,Filter将拦截该请求,并把访问的URL重定向到登陆页面。
在web.xml中的配置如下:
<filter>
<filter-name>filterservlet</filter-name>
<filter-class>com.comtop.app.common.FilterServlet</filter-class>
<init-param>
<param-name>freePages</param-name>
<param-value>
/Login.jsp;/LoginAction.do;/index.jsp;/ReLogin.jsp;/SSOLoginAction.do;
</param-value>
</init-param>
<init-param>
<param-name>toPage</param-name>
<param-value>/ReLogin.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>filterservlet</