您的位置:首页 > 编程语言 > Java开发

spring自定义拦截器

2017-10-09 11:09 246 查看
自定义拦截器

package com.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
/**
* 自定义拦截器,需要实现 HandlerInterceptor 接口
* @author pengfei.xiong
*
*/
public class MyInterceptor implements HandlerInterceptor{
/**
* 该方法在处理器方法执行之前执行。其返回值为 boolean,若为 true,则紧接着会执行处理器方
法,且会将 afterCompletion()方法放入到一个专门的方法栈中等待执行
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("正在执行----------preHandle");
return true;
}

/**
* 该方法在处理器方法执行之后执行。处理器方法若最终未被执行,则该方法不会执行。
由 于该方法是在处理器方法执行完后执行,且该方法参数中包含 ModelAndView,所以该方法可以修
改处理器方法的处理结果数据,且可以修改跳转方向
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
System.out.println("正在执行----------postHandle");
}

/**
* 当 preHandle()方法返回 true 时,会将该方法放到专门的方法栈中,等到对请求进行响应的所有
工作完成之后才执行该方法。即该方法是在中央调度器渲染(数据填充)了响应页面之后执行的,此
时对 ModelAndView 再操作也对响应无济于事
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
System.out.println("正在执行----------afterCompletion");
}

}


在springmvc.xml中注册拦截器

<!-- 注册拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 拦截所有 -->
<mvc:mapping path="/**"/>
<bean class="com.interceptor.MyInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  springmvc 拦截器