SpringMVC(六) 攔截器和使用者登入校驗
SpringMVC處理器攔截器
類似於servlet的filter過濾器
* 攔截器定義
public class HandlerInterceptor1 implements HandlerInterceptor {
/**
* 處理器方法返回檢視後呼叫
* 可以用來記錄日誌,並且捕獲異常資訊
*/
@Override
public void afterCompletion(HttpServletRequest req,
HttpServletResponse rsp, Object arg2, Exception arg3)
throws Exception {
System.out.println("afterCompletion1..........");
}
/**
* 處理器方法執行後但是沒有返回檢視呼叫
* 這裡可以在返回model前,對模型資料進行加工
*/
@Override
public void postHandle(HttpServletRequest req, HttpServletResponse rsp,
Object arg2, ModelAndView arg3) throws Exception {
System.out.println("postHandle1............");
}
/**
* 處理器方法呼叫前呼叫
* true:表示繼續執行 false:表示請求被攔截
* 這裡可以做使用者登入校驗
*/
@Override
public boolean preHandle(HttpServletRequest req, HttpServletResponse rsp,
Object arg2) throws Exception {
System.out.println("preHandle1............");
return true;
}
}
HanderInterceptor2是上面的複製檔案,列印的為xx2...........
* xml中配置攔截器
<!-- 配置攔截器 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 所有請求進入攔截器1 -->
<mvc:mapping path="/**"/>
<bean class="cn.bing.handlerInterceptor.HandlerInterceptor1"></bean>
</mvc:interceptor>
<mvc:interceptor>
<!-- 所有請求進入攔截器2 -->
<mvc:mapping path="/**"/>
<bean class="cn.bing.handlerInterceptor.HandlerInterceptor2"></bean>
</mvc:interceptor>
</mvc:interceptors>
* 任意請求,攔截器的輸出
preHandle1............
preHandle2............
postHandle2............
postHandle1............
afterCompletion2..........
afterCompletion1..........
說明prehandle方法按照定義的順序呼叫,postHandle,afterCompletion方法按照定義逆序呼叫
* 將攔截器1的prehandle方法改為false,後面的仍然是true
preHandle1............
prehandle返回false,只會執行當前prehandle的方法,後面的攔截器不執行,並且不會執行controller方法
* 將攔截器2的prehandle方法修改返回為false,前面的改為false
preHandle1............
preHandle2............
afterCompletion1..........
從結果看出,攔截器2prehandle方法改為false後,攔截器1的postHandler不會執行,並且攔截器2的postHandler不執行,afterCompletion1不執行
結論:
* postHandler 在所有攔截器返回成功才去呼叫
* afterCompletion方法只有perhandle方法返回true才去呼叫
使用者登入校驗
在攔截器的prehandle方法裡面校驗session存在,不存在,重定向到登入頁面
相關文章
- 前後端實現登入token攔截校驗後端
- SpringMVC【校驗器、統一處理異常、RESTful、攔截器】SpringMVCREST
- SpringMVC攔截器SpringMVC
- SpringMVC-攔截器SpringMVC
- 【SpringMVC】 4.3 攔截器SpringMVC
- SpringMVC配置攔截器SpringMVC
- SpringMVC攔截器,設定不攔截的URLSpringMVC
- SpringMVC中的攔截器SpringMVC
- SSM專案使用攔截器實現登入驗證功能SSM
- Go語言WEB框架:使用wego攔截器驗證使用者的登入狀態GoWeb框架
- SpringMVC中使用Interceptor攔截器SpringMVC
- SpringMVC攔截器的使用場景SpringMVC
- Struts開發一個許可權驗證攔截器來判斷使用者是否登入
- SpringBoot 2.X配置登入攔截器Spring Boot
- springboot2.0+jsp+登入攔截器Spring BootJS
- SpringMVC中的攔截器Interceptor實現SpringMVC
- 前端架構之vue+axios 前端實現登入攔截(路由攔截、http攔截)前端架構VueiOS路由HTTP
- vue通過vue-router攔截實現登入驗證Vue
- SpringMVC(五)-- springmvc的系統學習之攔截器SpringMVC
- gRPC(六)進階:攔截器 interceptorRPC
- 攔截器,攔截器棧總結
- Spring MVC 中的攔截器的使用“攔截器基本配置” 和 “攔截器高階配置”SpringMVC
- 通過配置http攔截器,來進行ajax請求驗證使用者登入的頁面跳轉HTTP
- 利用Filter和攔截器,將使用者資訊動態傳入Request方法Filter
- SpringMVC使用攔截器實現許可權控制SpringMVC
- SpringBoot-shiro登入攔截.使用者認證.整合MybatisSpring BootMyBatis
- Spring 過濾器和攔截器Spring過濾器
- Springboot中登入後關於cookie和session攔截案例Spring BootCookieSession
- MyBatis攔截器MyBatis
- Mybatis 攔截器MyBatis
- sql攔截器SQL
- gRPC 攔截器那點事,希望幫到你(六)RPC
- SpringBoot 整合 Shiro 實現登入攔截Spring Boot
- struts2.0攔截器(實現未登入的使用者不能訪問系統的頁面)
- View的載入原理和攔截方式View
- 華為遊戲登入校驗異常遊戲
- axios攔截器iOS
- Mybatis Interceptor 攔截器MyBatis