首页 > 编程语言 > 详细

SpringMVC拦截器的使用

时间:2019-11-12 17:00:28      阅读:71      评论:0      收藏:0      [点我收藏+]

什么是拦截器:Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等SpringMVC中通过实现HandlerInterceptor接口实现自定义拦截器类。

1.定义jsp

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

2.定义interceptor

继承HandlerInterceptor

public class Myinterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("/****************拦截器当中preHandle的执行方法****************/");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("在HandlerAdapter之后执行,在DispatcherServlet解析视图之前执行");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("===========呈现之后调用===========");
    }
}

详情如上重写方法实现拦截

3.Spring-MVC中配置拦截器

<!--配置拦截器-->
<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/my/**"/>
        <bean class="com.SpringMVC.interceptor.Myinterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>

4.配置控制器 

@Controller
@RequestMapping("/my")
public class MyController {
    @RequestMapping("/first")
    public String fileer(){
        System.out.println("/***********控制器的方法***********/");
        return "index";
    }
}

效果如下所示:

技术分享图片

 

 

跳转到首页

如将preHandle  return 改为false则是拦截,否则放行

技术分享图片

 

 

5.拦截器的执行流程

技术分享图片

1.程序先执行preHandle()方法,如果该方法的返回值为true,则程序会继续向下执行处理器中的方法,否则将不再向下执行。

2.在业务处理器(即控制器Controller类)处理完请求后,会执行postHandle()方法,进行视图渲染之前被调用,然后会通过DispatcherServlet向客户端返回响应。

3.在DispatcherServlet处理完请求后,才会执行afterCompletion()方法作用域释放资源,抛出异常等等

 

 

 

 

SpringMVC拦截器的使用

原文:https://www.cnblogs.com/ws1149939228/p/11842821.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!