横云断岭 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中配置的。