spring攔截器
package com.swjd.interceptor.interceptors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import com.swjd.interceptor.entity.User;
// 攔截器使用的場景
// 1.攔截判斷會話狀態:session
// 2.判斷許可權操作
// 3.對日誌進行收集
// 使用攔截器必須是實現
public class LoginInterceptor implements HandlerInterceptor{
// afterCompletion攔截器的preHandle,postHandle方法執行完成之後,做業務的回撥
// 類似finally的使用
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
User user = (User)request.getSession().getAttribute("use");
System.out.println("當前賬號:"+user.getName());
System.out.println("當前訪問地址:"+request.getRequestURI());
}
// postHandle在預處理方法通過後,則進行進一步業務攔截
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
// TODO Auto-generated method stub
}
// preHandle預處理方法,主要針對攔截進入業務控制器的請求,做前置業務引導
// 這個方法的返回值直接影響後續方法是否繼續攔截做業務操作
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
User user = (User)request.getSession().getAttribute("user");
// 如果會話狀態中有當前物件,則通過本次攔截
if (user != null) {
return true;
}
// 如果會話狀態異常,攔截請求,到登入頁面
request.setAttribute("msg", "<script>alert('去登入')</script>");
request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);
return false;
}
}
相關文章
- spring boot 攔截器Spring Boot
- Spring Boot新增攔截器Spring Boot
- Spring MVC 中的攔截器的使用“攔截器基本配置” 和 “攔截器高階配置”SpringMVC
- spring mvc攔截器,spring攔截器以及AOP切面的區別和原始碼SpringMVC原始碼
- Spring 過濾器和攔截器Spring過濾器
- spring mvc 攔截器的使用SpringMVC
- Spring Boot中攔截器的使用Spring Boot
- spring中的過濾器與攔截器Spring過濾器
- 談談 Spring 的過濾器和攔截器Spring過濾器
- Spring 常用的三種攔截器詳解Spring
- sql攔截器SQL
- SpringMVC攔截器SpringMVC
- Mybatis 攔截器MyBatis
- axios 攔截器iOS
- axios攔截器iOS
- MyBatis攔截器MyBatis
- SpringMVC攔截器,設定不攔截的URLSpringMVC
- Spring Boot專案中如何定製攔截器Spring Boot
- Spring AOP 日誌攔截器的事務管理Spring
- spring boot 新增自定義監聽器、過濾器、攔截器Spring Boot過濾器
- SpringMVC-攔截器SpringMVC
- gRPC(3):攔截器RPC
- 【SpringMVC】 4.3 攔截器SpringMVC
- Mybatis Interceptor 攔截器MyBatis
- 解決spring cloud Feign遠端呼叫服務,新增headers解決攔截器攔截問題SpringCloudHeader
- SpringBoot攔截器中獲取註解、攔截器中注入ServiceSpring Boot
- Flume內建攔截器與自定義攔截器(程式碼實戰)
- Spring-全域性異常攔截Spring
- mybatis註冊攔截器MyBatis
- SpringMVC中的攔截器SpringMVC
- grpc中的攔截器RPC
- HandlerInterceptor - 自定義攔截器
- 攔截過濾器模式過濾器模式
- SpringBoot 手寫攔截器Spring Boot
- 16、threadlocal+攔截器thread
- Spring Boot 第六彈,攔截器如何配置,看這兒~Spring Boot
- Day71 Spring MVC的攔截器和執行原理SpringMVC
- 攔截器的使用問題