對於過濾器,攔截器知識詳解請參考 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/下面的請求都會被過濾