filter的使用

项目中有需求,针对servlet请求,需要进行过滤。由于和手机对接,他们没有按照浏览器那种方式发送sessionid,而是把sessionid放到请求参数中了所以后端需要新建一个过滤器,针对这些请求,使用map存储sessionid,和请求的时间,然后计算是否过期,过期需要把map中的清除。

为了解决一些死链接,即请求一次,以后再也不来了,这样就不会移除,所以需要加一个计数器,超过1000次后,全部循环,看下是否有一些死链接。

实现Servlet.Filter接口 
public class AdminLoginFilter implements Filter 
新建一个实现filter接口的类,实现dofilter方法,在dofilter方法里面写一个判读,比如如果用户名密码为空,则返回到登录页面 
public class TestFilter implements Filter { 
public void doFilter(ServletRequest srt, ServletResponse sre, 
FilterChain filterChain) throws IOException, ServletException { 

HttpServletRequest request = (HttpServletRequest)srt; 
HttpServletResponse response = (HttpServletResponse)sre; 

String name= (String)request.getSession().getAttribute("name"); 

if( name== null || name.trim().length() < 1) { 

response.sendRedirect( "/denglu.jsp" ); 
}else { 
filterChain.doFilter(request, response); 


web.xml配置过滤器 
<filter> 
<filter-name>TestFilter </filter-name> 
<filter-class>/test/TestFilter </filter-class> 
</filter> 

配置多个映射,哪些请求执行过滤器 
<filter-mapping> 
<filter-name>TestFilter </filter-name> 
<url-pattern>/web-inf/test/*</url-pattern> 
</filter-mapping> 
<filter-mapping> 
<filter-name>TestFilter </filter-name> 
<url-pattern>/login.do</url-pattern> 
</filter-mapping> 
<filter-mapping> 
<filter-name>TestFilter </filter-name> 
<url-pattern>/loginin.do</url-pattern> 
</filter-mapping>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值