SpringMVC自定义拦截器
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中进行mvcinterceptor-mvc:mapping
还没有评论,来说两句吧...