Spring学习(2)Spring mvc拦截器


一、Spring提供的拦截器接口和拦截适配器

Spring中提供了拦截器接口HandlerInterceptor和拦截适配器HandlerInterceptorAdapter,可以通过实现接口或者继承自适配器来自定义拦截器。

 

二、拦截器中的方法

以HandlerInterceptor接口为例,有三个方法。

Ø  preHandler方法在action之前调用。(权限控制)

Ø  postHandler方法在生成视图之前调用。

Ø  afterCompletion方法最后执行。(资源释放、异常日志处理)

 

三、自定义拦截器

public classSecurityInteceptor implements HandlerInterceptor {

   @Override

   public booleanpreHandle(HttpServletRequest request, HttpServletResponse response, Objecthandler) throwsException {

        System.out.println("preHandle start..........");

        return true;

   }

   @Override

   public voidpostHandle(HttpServletRequest request, HttpServletResponse response, Objecthandler,

            ModelAndView modelAndView) throws Exception {

        System.out.println("postHandle start..........");

   }

   @Override

   public voidafterCompletion(HttpServletRequest request, HttpServletResponse response,Object handler, Exception ex)

            throws Exception {

        System.out.println("afterCompletion start.........");

   }

}

 

四、拦截器的配置

Spring拦截器的配置有三种方案:

Ø  拦截所有url

    <mvc:interceptors>

        <bean class="com.sohu.spaces.grap.inteceptor.SecurityInteceptor"/>

    </mvc:interceptors>

 

Ø  根据url匹配拦截

    <mvc:interceptors>

        <mvc:interceptor>

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

           <bean class="com.sohu.spaces.grap.inteceptor.SecurityInteceptor"/>

        </mvc:interceptor>

        <mvc:interceptor>

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

           <bean class="com.sohu.spaces.grap.inteceptor.SecurityInteceptor"/>

        </mvc:interceptor>

    </mvc:interceptors>

 

Ø  在HandlerMapping上拦截

    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">      

         <property name="interceptors">      

            <list>      

                <bean class="com.sohu.spaces.grap.inteceptor.SecurityInteceptor"></bean>     

            </list>      

         </property>      

    </bean>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值