springmvc-Interceptor(拦截器)

Interceptor(拦截器)

interceptor拦截器是springmvc专有的,它只能作用于controller上,对其他的无效。

比filter使用更简单,但相应的使用范围更小只限于controller。

步骤:
  1. 首先需要实现类HandlerInterceptor。

    public class Myinterceptor implements HandlerInterceptor {
       @Override
       public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
           System.out.println("当前请求地址为:"+request.getRequestURI());
           if(request.getRequestURI().contains("lg/login")){
               return true;
          }
           if(request.getSession().getAttribute("loginMsg")!=null){
               return true;
          }
           request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);
           return false;
           //preHandler业务请求之前调用。
      }

       @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 {
    //对资源进行清算,该销毁销毁,该回收回收。
      }
    }

    2.当然这个也是需要配置在spirng-mvc文件下的,你想想枪都装好了子弹也上膛了但是没有瞄准方位那还不是没作用,所以我们需要指定拦截的范围,和找到Interceptor类。

            <!--注册interceptor-->
           <mvc:interceptors>
               <mvc:interceptor>
                   <mvc:mapping path="/lg/*"/>
                   <bean class="cn.com.scitc.config.Myinterceptor"/>
               </mvc:interceptor>
           </mvc:interceptors>

    3.然后就是测试了呗,自个测试。

posted @ 2021-07-18 15:33  mamoritsuzuki  阅读(101)  评论(0)    收藏  举报