Spring Boot拦截器介绍
最常用的场景:登录拦截、权限校验、防止重复提交等
实现方式有两种:
1:实现Spring的HandlerInterceptor接口
2:继承实现了HandlerInterceptor接口的类,HandlerInterceptorAdapter
代码演示
@Component public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(); String username = (String) session.getAttribute("username"); if (username.isEmpty()){ //若session为空 返回login页面 response.sendRedirect(request.getContextPath()+"/login"); return false; } return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }
方法介绍
preHandle:在业务处理器处理请求之前被调用。预处理,可以进行编码、安全控制、权限校验等处理;
postHandle:在业务处理器处理请求执行完成后,生成视图之前执行。后处理(调用了 Service 并返回 ModelAndView ,但未进行页面渲染),有机会修改 ModelAndView ;
afterCompletion:在 DispatcherServlet 完全处理完请求后被调用,可用于清理资源等。返回处
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)