攔截器用於對瀏覽器到服務器的請求數據或者服務器到瀏覽器的返回數據作一些更改,或者對請求數據作一些加強spring
配置攔截器的攔截規則
<mvc:interceptors>瀏覽器
<mvc:interceptor> <mvc:mapping path="/hello3"/> <!-- 定義在mvc:interceptor下面的表示是對特定的請求才進行攔截的 --> <bean class="interceptor.Test1Interceptor"/> </mvc:interceptor>
</mvc:interceptors>服務器
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {mvc
System.out.println("postHandle"); modelAndView.addObject("name","被攔截器修改後的消息");
}app
使用原則:處理全部請求的共同問題框架
1.解決亂碼問題jsp
2.解決權限驗證問題函數
在preHandle方法中對用戶是否登陸進行判斷,若未登陸,則跳轉至登陸頁面:post
if(args.getSession.getAttribute("user")==null){
arg0.getRequestDispatcher("/login.jsp").forward(arg0,arg1);
return false;
}
return true;spa
過濾器Filter依賴於servlet容器,基於回調函數,過濾範圍大
攔截器Interceptor依賴於框架容器,基於反射機制,只過濾請求。
只是記錄下知識點,參考自https://zhuanlan.zhihu.com/p/...