springMVC之拦截器详解

14 篇文章 0 订阅
5 篇文章 0 订阅
一、 springMVC的拦截器有两种实现方法,这里是使用springMVC 3.0:
  1、实现接口:org.springframework.web.servlet.HandlerInterceptor
  2、继承适配器:org.springframework.web.servlet.handler.HandlerInterceptorAdapter这个适配器实现了HandlerInterceptor接口。
  提供了这个接口中所有方法的空实现。
package com.springmvc.util;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
 
public class SpingInterceptor implements HandlerInterceptor{
        /*1、Object obj是指下一个拦截器该方法;
        *2、在action执行前执行,可以实现对数据的预处理,比如:编码、安全控制等。如果方法返回true,则继续执行action。*/
        @Override
        public boolean preHandle(HttpServletRequest req, HttpServletResponse res,Object obj) throws Exception {
                System.out.println("before action excute !!!");
                return true;  //继续执行action
 
        }
        /*1、Object obj是指下一个拦截器
        *2、 该方法在action执行后,生成视图前执行。在这里,我们有机会修改视图层数据。
        * */
        @Override
        public void postHandle(HttpServletRequest req, HttpServletResponse res,Object obj, ModelAndView mv) throws Exception {
                System.out.println("after Action excute,before view create!!!");
        }
        /*1、Object obj是指下一个拦截器
        *2、最后执行,通常用于释放资源,处理异常。我们可以根据exp是否为空,来进行相关的异常处理。因为我们在平时处理异常时,
        *都是从底层向上抛出异常,最后到了spring框架从而到了这个方法中。
        * */
        @Override
        public void afterCompletion(HttpServletRequest req,HttpServletResponse res, Object obj, Exception exp)throws Exception {
                System.out.println("afterComletion,use to release some resources!!!");
        }
}
二、在 springmvc-servlet中配置拦截器:
<!--配置拦截器  -->
<mvc:interceptors>
<!-- <bean class="com.springmvc.util.SpingInterceptor"></bean>写在这里表示拦截所有springmvc的url! -->
  <mvc:interceptor>
     <mvc:mapping path="/user/upload"/>
     <bean class="com.springmvc.util.SpingInterceptor"></bean><!-- 表示只拦截 /user/upload这个url-->
  </mvc:interceptor>
</mvc:interceptors>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值