spring mvc拦截器的编写

2025-10-22 07:52:48

1、拦截器的编写必须实现HandleIntegerCeptor接口,在xml配置文件中 添加<mvc:annotation-driven />或者使用注解@EnableWebMvc时,系统就会初始化ConversionServiceInterceptor,他是一个开始就被springmvc系统默加载的拦截器,他的主要作用就是根据配置在控制器上的注解来完成对应的功能。

spring mvc拦截器的编写

2、客户端发送请求,首先经过prehandle方法,此时获取绑定的数据,如果已经登录并且绑定数据则返回true,如果没有登录绑定数据则返回false并且跳转到其他的页面

spring mvc拦截器的编写

3、public class LoginIntercepter extends HandlerInterceptorAdapter{ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)   throws Exception {  HttpSession session = request.getSession();  User u = (User) session.getAttribute("user"); 

spring mvc拦截器的编写

4、 if(u!=null){   System.out.println("拦截器验证登录");   return true;  }  

System.out.println("拦截器验证未登录");  response.sendRedirect("login.do");  return false; }

spring mvc拦截器的编写

5、此方法只有在请求期间发生异常时执行

@Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,   ModelAndView modelAndView) throws Exception {  System.out.println("异常时执行");  super.postHandle(request, response, handler, modelAndView); }

spring mvc拦截器的编写

6、 @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)   throws Exception {  System.out.println("拦截器执行完毕");  super.afterCompletion(request, response, handler, ex); }

此方法会在拦截器成功时执行,如果发生异常则不执行此方法,

该方法的执行依赖对应的preHandle 方法的返回值为true 时才会执行;

spring mvc拦截器的编写

7、整个拦截器的模式责任链模式,(在一个请求或者链上有多个处理拦截)(个人理解),这种开发模式可以认为是责任链模式;

spring mvc拦截器的编写

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢