【学习】Spring3中的mvc:interceptors标签配置拦截器

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

相关推荐