定义三个拦截器

springmvc_拦截器

此处只粘贴一个拦截器,其余两个拦截器跟1一样,只是里面的1换成了2和3,区分用的

public class MyInterceptor1 implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("------我是拦截器1的前置方法------");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("------我是拦截器1的后处理方法,我看到了------:"+modelAndView.getViewName());
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("------我是拦截器1的完成后处理方法。------");
    }
}

在springmvc中配置拦截器

<!--配置自定义拦截器-->
<mvc:interceptors>
    <!--方式一:拦截器一全都拦截-->
    <bean class="it.heima.interceptor.MyInterceptor1"/>
    <bean class="it.heima.interceptor.MyInterceptor2"/>
    <bean class="it.heima.interceptor.MyInterceptor3"/>
    
    <!--方式二:通过mvc:interceptor来配置,同时可以指定要拦截的路径-->
<mvc:interceptor>
    <!--这意思是所有都拦截,anit风格的,也可以写成.do以什么结尾的拦截-->
    <mvc:mapping path="/**/"/>
    <bean class="it.heima.interceptor.MyInterceptor1"/>
</mvc:interceptor>

</mvc:interceptors>

控制器

@RequestMapping("show18")
public ModelAndView show18(){
    ModelAndView mv = new ModelAndView("hello");
    mv.addObject("msg","看到说明拦截器执行了");
    return mv;
}

浏览器请求后结果:

springmvc_拦截器

控制台

springmvc_拦截器

相关文章:

  • 2021-10-13
猜你喜欢
  • 2021-09-27
  • 2021-04-18
  • 2022-12-23
  • 2022-12-23
  • 2021-05-08
相关资源
相似解决方案