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存在,不存在,重定向到登入頁面
相關文章
- SpringMVC【校驗器、統一處理異常、RESTful、攔截器】SpringMVCREST
- 前後端實現登入token攔截校驗後端
- SpringMVC攔截器SpringMVC
- SpringMVC-攔截器SpringMVC
- 【SpringMVC】 4.3 攔截器SpringMVC
- SpringMVC中的攔截器SpringMVC
- SpringMVC攔截器,設定不攔截的URLSpringMVC
- springboot2.0+jsp+登入攔截器Spring BootJS
- SSM專案使用攔截器實現登入驗證功能SSM
- Go語言WEB框架:使用wego攔截器驗證使用者的登入狀態GoWeb框架
- SpringMVC攔截器的使用場景SpringMVC
- SpringBoot 2.X配置登入攔截器Spring Boot
- SpringMVC中的攔截器Interceptor實現SpringMVC
- 前端架構之vue+axios 前端實現登入攔截(路由攔截、http攔截)前端架構VueiOS路由HTTP
- SpringBoot-shiro登入攔截.使用者認證.整合MybatisSpring BootMyBatis
- gRPC(六)進階:攔截器 interceptorRPC
- vue通過vue-router攔截實現登入驗證Vue
- Spring MVC 中的攔截器的使用“攔截器基本配置” 和 “攔截器高階配置”SpringMVC
- SpringBoot 整合 Shiro 實現登入攔截Spring Boot
- Springboot中登入後關於cookie和session攔截案例Spring BootCookieSession
- SpringMvc-10.14上傳、攔截器、異常處理SpringMVC
- Spring 過濾器和攔截器Spring過濾器
- 利用Filter和攔截器,將使用者資訊動態傳入Request方法Filter
- gRPC 攔截器那點事,希望幫到你(六)RPC
- spring mvc攔截器,spring攔截器以及AOP切面的區別和原始碼SpringMVC原始碼
- axios 攔截器iOS
- spring攔截器Spring
- axios攔截器iOS
- sql攔截器SQL
- Mybatis 攔截器MyBatis
- MyBatis攔截器MyBatis
- 【SpringMVC】檔案上傳與下載、攔截器、異常處理器SpringMVC
- Springmvc mvc:exclude-mapping不攔截 無效SpringMVCAPP
- 鴻蒙Navigation攔截器實現頁面跳轉登入鑑權方案鴻蒙Navigation
- IceRPC之傳入響應和攔截器->快樂的RPCRPC
- Mybatis Interceptor 攔截器MyBatis
- spring boot 攔截器Spring Boot
- gRPC(3):攔截器RPC