码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC学习16-springmvc拦截器

时间:2015-11-26 15:13:14      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

1.定义拦截器

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

public class HandlerInterceptor1 implements HandlerInterceptor {

   //进入 Handler方法之前执行

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

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

   @Override

   public boolean preHandle(HttpServletRequest request,

         HttpServletResponse response, Object handler) throws Exception {

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

      //return true表示放行

      return false;

   }

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

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

   @Override

   public void postHandle(HttpServletRequest request,

         HttpServletResponse response, Object handler,

         ModelAndView modelAndView) throws Exception {

   }

 

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

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

   @Override

   public void afterCompletion(HttpServletRequest request,

         HttpServletResponse response, Object handler, Exception ex)

         throws Exception {

   }

}

 

2.拦截器配置

针对HandlerMapping配置

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

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

    <property name="interceptors">

       <list>

           <ref bean="handlerInterceptor1"/>

           <ref bean="handlerInterceptor2"/>

       </list>

    </property>

</bean>

    <bean id="handlerInterceptor1" class="springmvc.intercapter.HandlerInterceptor1"/>

    <bean id="handlerInterceptor2" class="springmvc.intercapter.HandlerInterceptor2"/>

一般不推荐使用。

 

类似全局的拦截器

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

<!--拦截器 -->

<mvc:interceptors>

    <!--多个拦截器,顺序执行 -->

    <mvc:interceptor>

       <mvc:mapping path="/**"/>

       <bean class="filter.HandlerInterceptor1"></bean>

    </mvc:interceptor>

    <mvc:interceptor>

       <mvc:mapping path="/**"/>

       <bean class="filter.HandlerInterceptor2"></bean>

    </mvc:interceptor>

</mvc:interceptors>

 

SpringMVC学习16-springmvc拦截器

标签:

原文地址:http://www.cnblogs.com/hqt2050/p/4997611.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!