springmvc 定义拦截器

来源:互联网 发布:机智交易软件 编辑:程序博客网 时间:2024/05/26 19:17

定义拦截器之前,我们先来看看贯穿整个请求的一个类HandlerExecutionChain,顾名思义就是执行链,他贯穿整个请求的过程。

这里写图片描述

HandlerExecutionChain 有一个属性List<HandlerInterceptor>,你可以在里面注册多个拦截器,进行业务拦击,我们在配置文件注册一下

<mvc:interceptors>        <mvc:interceptor>            <mvc:mapping path="/**" />            <bean class="com.liuxg.interceptor.PrivilegeInterceptor" />        </mvc:interceptor>    </mvc:interceptors>

<mvc:mapping /> 可以映射拦截的路径,还可以配置mvc:exclude-mapping />可以配置不需要拦截的路径

定义一个连接器,可以继承于HandlerInterceptorAdapter,重写拦截的几个过程

/*** * 拦截,主要是用来装载用户信息和权限信息 * @author liuxg * @date 2015年8月21日 下午7:23:29 */public class PrivilegeInterceptor extends HandlerInterceptorAdapter{    /**     * 进入controller之前     */    public boolean preHandle(HttpServletRequest request,            HttpServletResponse response, Object handler) throws Exception {        return super.preHandle(request, response, handler);    }    /**     * controller业务处理完之后,生成视图之前     */    public void postHandle(HttpServletRequest request,            HttpServletResponse response, Object handler,            ModelAndView modelAndView) throws Exception {        super.postHandle(request, response, handler, modelAndView);    }    /**     * 在DispatcherServlet完全处理完请求后被调用,可用于清理资源等        */    public void afterCompletion(HttpServletRequest request,            HttpServletResponse response, Object handler, Exception ex)            throws Exception {        super.afterCompletion(request, response, handler, ex);    }}
0 0