ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
![](https://box.kancloud.cn/5de4818ca8120be65048e79a39ab5bc3_780x425.png) ~~~ 自定义拦截器的使用流程: I、自定义的拦截器类。实现HandlerInterceptor. preHandle():调用业务方法之前调用的 postHandle():调用业务方法之后,渲染视图之前 afterCompletion():渲染视图之后 II、<mvc:interceptors>---> <bean >拦截所有的请求 ---> <mvc:interceptor>--->mvc:mapping ----> bean ~~~ - 1. 写一个实现类实现HandlerInterceptor接口 ~~~ public class MyInterceptor implements HandlerInterceptor{ //渲染视图之后所要调用的方法        //应用场景:统一日志处理,统一异常处理 public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { // TODO Auto-generated method stub } //调用业务方法结束之后,在视图渲染之前 public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { // TODO Auto-generated method stub } //调用业务方法或者下一个拦截器之前需要执行的方法 //如果返回值为true,拦截器方法执行完毕,继续执行下一个拦截器或者业务方法 //如果false //应用场景:如身份认证,身份授权。 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // TODO Auto-generated method stub System.out.println("走入到拦截器中。。。"); Date date=new Date(); int hour=date.getHours(); if(hour>=9&&hour<=13){ return true; }else{ response.sendRedirect("error.jsp"); return false; } } } ~~~ - 2.springmvc.xml文件中配置一个`<mvc:interceptors>`子节点 ~~~ <mvc:interceptors> <!-- mvc:interceptor是一个关于拦截器的一个声明,mvc:mapping指定配置的拦截器所要拦截的资源 --> <mvc:interceptor> <mvc:mapping path="/toFormat"/> <bean id="myInterceptor" class="cn.li.interceptor.MyInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> //拦截所有的请求 <mvc:interceptors> <bean id="myInterceptor" class="cn.li.interceptor.MyInterceptor"></bean> </mvc:interceptors> ~~~