SpringMVC自定义拦截器 迈不过友情╰ 2022-05-12 13:24 185阅读 0赞 SpringMVC可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlderInterceptor接口 * boolean preHandle();这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求request进行处理,如果ture,可以继续进行其他业务方法,如果false时,不需要处理接下来的业务方法 \-postHandle()这个方法在业务方法处理完请求后,但是DispatcherServlet向客户端返回响应前被调用,该方法中对用户请求request进行处理 \-afterCompletion(),这个方法在DispatcherServlet完全处理完请求后被调用,可以在该方法中进行一些资源清理的操作。 举例: 如果当前时间9-17点之间,可以访问当前页面 在Java类中加入MyInterceptor类 public classs MyInterceptor implements HandlerIntercepter\{ //调用业务方法或者下一个拦截器之前需要执行的方法,如果返回值为ture则继续执行下一个业务方法或者拦截器,否则,不要向下执行 boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler){ Date date=new Date(); int hour=date.getHours(); if(hour>=9&&hour<=17){ return true; }else{ response.sendRedirect("error"); return false; } } //调用业务方法结束之后,在渲染视图之前 postHandle(); //渲染视图之后要调用的方法 afterCompletion() } 在springmvc.xml中配置拦截器 <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/toFormat"/>//拦截资源的设定,如果没有mapping就是拦截所有的请求 <bean id="MyInterceptor" class="MyInterceptor包的全路径“” </mvc:interceptor> </mvc:interceptors> 注:自定义拦截器使用流程: 1.自定义的拦截器类:实现handlerInceptor的方法 2.在springmvc.xml中进行mvc:interceptors-mvc:interceptor-mvc:mapping
还没有评论,来说两句吧...