一個初學者的過濾器配置

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章