一个初学者的过滤器配置

来源:互联网 发布:网络调度表 编辑:程序博客网 时间:2024/05/19 01:08

对于过滤器,拦截器知识详解请参考  http://blog.csdn.net/csh624366188/article/details/7423215



首先,你需要建一个拦截器包,并建立java类,我这里取名叫TaotaoFilter



类内容如下:


package com.taotao.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;

import com.taotao.pojo.TbUser;
import com.taotao.service.TbUserService;

/**
*
*
* <b>类名称:</b>TaotaoFilter<br/>
* <b>类描述:</b>过滤器<br/>
* <b>创建人:</b>tongbiyuanhou<br/>
* <b>修改人:</b>tongbiyuanhou<br/>
* <b>修改时间:</b>2016年3月25日 上午10:33:46<br/>
* <b>修改备注:</b><br/>
*
* @version 1.0.0<br/>
*
*/
public class TaotaoFilter implements Filter {
/*
* 可以在filter中根据条件决定是否调用chain.doFilter(request, response)方法, 1、 即是否让目标资源执行
* 2、在让目标资源执行之前,可以对request\response作预处理,再让目标资源执行
* 3、在目标资源执行之后,可以捕获目标资源的执行结果,从而实现一些特殊的功能
*/
public TaotaoFilter() {

}

@Autowired
private TbUserService tbUserService;

@Override
public void destroy() {
}

@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

HttpServletRequest httpRequest=(HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
TbUser buTbUser = (TbUser) httpRequest.getSession().getAttribute("loginInfo");
if(buTbUser == null){
String batsePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort();
httpResponse.sendRedirect(batsePath+httpRequest.getContextPath()+"/loginget");
return;
}
chain.doFilter(request, response);

}

@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
}


接着,也是最重要的一步,我们需要在web.xml 中配置过滤器:


每次访问user/下面的请求都会被过滤

1 0
原创粉丝点击