欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringMVC拦截器

程序员文章站 2022-07-14 11:57:28
...

1.拦截器编写

public class MyInterceptor implements HandlerInterceptor {
    //前置拦截
    /*
    * 执行时机:在controller执行之前
    * 返回值boolean类型,如果是false表示被拦截
    * true表示放行
    * */
    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        System.out.println("前置拦截");
        return true;
    }
    //后置拦截
    /*
    * 执行时机:controller执行完毕但是还没有走视图解析器
    * */
    @Override
    public void postHandle(HttpServletRequest req, HttpServletResponse rep, Object o, ModelAndView mv) throws Exception {
        System.out.println("后置拦截");
    }
    //最终拦截
    /*
    * 执行时机:视图解析器解析完页面后,主要是做项目运行期异常
    * */
    @Override
    public void afterCompletion(HttpServletRequest req, HttpServletResponse rep, Object o, Exception e) throws Exception {
        System.out.println("最终拦截");
    }
}

2.配置文件编写

  <!--配置拦截器-->
    <mvc:interceptors>
        <mvc:interceptor>
            <!--设置拦截路径-->
            <!--如果要对controller中的一个或者两个方法进行拦截则
            @RequestMapping("/upload/toUpload.do")
            path="/upload/upload/**"
            如果要拦截系统中所有的path="/**"
            -->
            <mvc:mapping path="/upload/**"/>
            <bean class="mvc.controller.MyInterceptor"></bean>
        </mvc:interceptor>
    </mvc:interceptors>