横云断岭 2013-10-10
mvc:interceptors
ThistagallowsyoutoregistercustomHandlerInterceptorsorWebRequestInterceptorsthatshouldbeappliedtoallHandlerMappingbeans.
YoucanalsorestricttheURLpathsspecifcinterceptorsapplyto.
注册自定义的拦截器或请求拦截器,也可以拦截指定url路径。
格式详解(以后台拦截器为例):
<mvc:interceptors> <mvc:interceptor> <mapping path="/admin/*"/><!--可略 以下配置将拦截特有的URL请求--> <bean class="org.example.AdminInterceptor"/><!--必填 自定义的拦截器的类--> </mvc:interceptor> </mvc:interceptors>
AdminInterceptor类为自定义的拦截器,可实现HandlerInterceptor接口,也可继承类HandlerInterceptorAdapter。
HandlerInterceptorAdapter类有三个方法,如下:
//预处理方法 可进行登记验证、安全、编编等处理 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return true; } //后处理(调用了Service并返回ModelAndView,但未进行页面渲染),依旧可以修改ModelAndView public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)throws Exception { } //返回处理(已经渲染了页面),用于记录日志等 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception { }
---------------------------------
以下来自网络,供参考:
如果基于xml配置使用SpringMVC,
可以利用SimpleUrlHandlerMapping、BeanNameUrlHandlerMapping进行Url映射(相当于struts的path映射)和拦截请求(注入interceptors),
如果基于注解使用SpringMVC,可以使用DefaultAnnotationHandlerMapping注入interceptors。
注意无论基于xml还是基于注解,HandlerMappingbean都是需要在xml中配置的。