SpringMVC自定义拦截器

迈不过友情╰ 2022-05-12 13:24 337阅读 0赞

SpringMVC可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlderInterceptor接口

  • boolean preHandle();这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求request进行处理,如果ture,可以继续进行其他业务方法,如果false时,不需要处理接下来的业务方法
    -postHandle()这个方法在业务方法处理完请求后,但是DispatcherServlet向客户端返回响应前被调用,该方法中对用户请求request进行处理
    -afterCompletion(),这个方法在DispatcherServlet完全处理完请求后被调用,可以在该方法中进行一些资源清理的操作。
    举例:
    如果当前时间9-17点之间,可以访问当前页面
    在Java类中加入MyInterceptor类

public classs MyInterceptor implements HandlerIntercepter{
//调用业务方法或者下一个拦截器之前需要执行的方法,如果返回值为ture则继续执行下一个业务方法或者拦截器,否则,不要向下执行

  1. boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler){
  2. Date date=new Date();
  3. int hour=date.getHours();
  4. if(hour>=9&&hour<=17){
  5. return true;
  6. }else{
  7. response.sendRedirect("error");
  8. return false;
  9. }
  10. }
  11. //调用业务方法结束之后,在渲染视图之前
  12. postHandle();
  13. //渲染视图之后要调用的方法
  14. afterCompletion()
  15. }

在springmvc.xml中配置拦截器

  1. <mvc:interceptors>
  2. <mvc:interceptor>
  3. <mvc:mapping path="/toFormat"/>//拦截资源的设定,如果没有mapping就是拦截所有的请求
  4. <bean id="MyInterceptor" class="MyInterceptor包的全路径“”
  5. </mvc:interceptor>
  6. </mvc:interceptors>

注:自定义拦截器使用流程:
1.自定义的拦截器类:实现handlerInceptor的方法
2.在springmvc.xml中进行mvc:interceptors-mvc:interceptor-mvc:mapping

发表评论

表情:
评论列表 (有 0 条评论,337人围观)

还没有评论,来说两句吧...

相关阅读

    相关 springMvc定义拦截

    其实最初我是不想这篇文章的,因为我个人感觉拦截器没什么用,如果是需要权限拦截的话,完成可以使用现成的权限框架,比如shiro,不是因为我懒,因为我们自己去写的话肯定会有一堆问题