拦截器(19)

来源:互联网 发布:python 读取 csv 编辑:程序博客网 时间:2024/05/24 15:38

前记:这是很早之前自学学习spingMvc时的笔记,内容比较基础,适合新手,内容基本是来自网络,如有雷同,敬请谅解!

    拦截器

  拦截器定义

定义拦截器,实现HandlerInterceptor接口。接口中提供三个方法。

publicclassHandlerInterceptor1implementsHandlerInterceptor {

   //进入 Handler方法之前执行

   //用于身份认证、身份授权

   //比如身份认证,如果认证通过表示当前用户没有登陆,需要此方法拦截不再向下执行

   @Override

   publicbooleanpreHandle(HttpServletRequest request,

         HttpServletResponseresponse, Object handler)throws Exception {

      //return false表示拦截,不向下执行

      //return true表示放行

      returnfalse;

   }

   //进入Handler方法之后,返回modelAndView之前执行

   //应用场景从modelAndView出发:将公用的模型数据(比如菜单导航)在这里传到视图,也可以在这里统一指定视图

   @Override

   publicvoidpostHandle(HttpServletRequest request,

         HttpServletResponseresponse, Object handler,

         ModelAndViewmodelAndView)throwsException {

   }

   //执行Handler完成执行此方法

   //应用场景:统一异常处理,统一日志处理

   @Override

   publicvoidafterCompletion(HttpServletRequest request,

         HttpServletResponseresponse, Object handler, Exception ex)

         throws Exception {

   }

}

1.1.2  拦截器配置

1.1.2.1 针对某种HandleMapping进行配置

springmvc拦截器针对HandlerMapping进行拦截设置,

如果在某个HandlerMapping中配置拦截,经过该 HandlerMapping映射成功的handler最终使用该拦截器。

<bean

    class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">

    <propertyname="interceptors">

       <list>

           <ref bean="handlerInterceptor1"/>

           <ref bean="handlerInterceptor2"/>

       </list>

    </property>

</bean>

    <beanid="handlerInterceptor1"class="springmvc.intercapter.HandlerInterceptor1"/>

    <beanid="handlerInterceptor2"class="springmvc.intercapter.HandlerInterceptor2"/>

 

一般不推荐使用。

 类似全局的拦截器

springmvc配置类似全局的拦截器,springmvc框架将配置的类似全局的拦截器注入到每个HandlerMapping中。

 


原创粉丝点击