`
idealmine
  • 浏览: 9931 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring中的mvc:interceptors标签配置拦截器

阅读更多

mvc:interceptors

       这个标签用于注册一个自定义拦截器或者是WebRequestInterceptors。

可以通过定义URL来进行路径请求拦截,可以做到较为细粒度的拦截控制。

1、xml配置代码如下

    

  <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
                        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
     <mvc:interceptors>
         <!-- 日志拦截器 -->
         <mvc:interceptor>
           <mvc:mapping path="/**" />   
           <mvc:exclude-mapping path="/static/**" />
            <bean class="拦截器java代码路径" /> 
     </mvc:interceptor>
 </mvc:interceptors>
</beans>

 

 

2、说明

      1)mvc:mapping 拦截器路径配置

            (或:一级目录   <mvc:mapping path="/*/*.do" /> ;二级目录<mvc:mapping path="/*/*.do" /> )

      2)mvc:exclude-mapping 拦截器不需要拦截的路径

            (类路径 或 <ref bean="processResponseInterceptor"/>)

 

3、实现

     implements HandlerInterceptor 或extends HandlerInterceptorAdapter

      

 /**
     * preHandle方法是进行处理器拦截用的,顾名思义,该方法将在Controller处理之前进行调用,
     * SpringMVC中的Interceptor拦截器是链式的,可以同时存在多个Interceptor,
     * 然后SpringMVC会根据声明的前后顺序一个接一个的执行,
     * 而且所有的Interceptor中的preHandle方法都会在Controller方法调用之前调用。
     * SpringMVC的这种Interceptor链式结构也是可以进行中断的,
     * 这种中断方式是令preHandle的返回值为false,当preHandle的返回值为false的时候整个请求就结束了。
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)  
        throws Exception {  
        return true;  
    }  
 
    /**
     * 这个方法只会在当前这个Interceptor的preHandle方法返回值为true的时候才会执行。
     * postHandle是进行处理器拦截用的,它的执行时间是在处理器进行处理之 后, 也就是在Controller的方法调用之后执行,
     * 但是它会在DispatcherServlet进行视图的渲染之前执行,也就是说在这个方法中你可以对ModelAndView进行操作。
     * 这个方法的链式结构跟正常访问的方向是相反的,也就是说先声明的Interceptor拦截器该方法反而会后调用,
     * 这跟Struts2里面的拦截器的执行过程有点像,
     * 只是Struts2里面的intercept方法中要手动的调用ActionInvocation的invoke方法,
     * Struts2中调用ActionInvocation的invoke方法就是调用下一个Interceptor或者是调用action,
     * 然后要在Interceptor之前调用的内容都写在调用invoke之前,要在Interceptor之后调用的内容都写在调用invoke方法之后。
     */
    @Override
    public void postHandle(  
            HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)  
            throws Exception {  
    } 
 
     /**
     * 该方法也是需要当前对应的Interceptor的preHandle方法的返回值为true时才会执行。
     * 该方法将在整个请求完成之后,也就是DispatcherServlet渲染了视图执行, 这个方法的主要作用是用于清理资源的,
     */
    @Override 
    public void afterCompletion(  
            HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)  
            throws Exception {  
    }  

 

   

   

 

    

 

 

分享到:
评论

相关推荐

    拦截器与冲突解决

    - **显式配置拦截器**:通过`&lt;mvc:interceptors&gt;`标签显式地声明并配置拦截器,避免使用`&lt;mvc:annotation-driven /&gt;`的默认设置。 - **排除默认拦截器**:如果`&lt;mvc:annotation-driven /&gt;`包含默认拦截器,可以考虑...

    spring mvc xml配置拦截器

    在Spring MVC的配置文件(通常为`servlet-context.xml`)中,我们需要声明拦截器并将其添加到`&lt;mvc:interceptors&gt;`标签下。以下是一个示例配置: ```xml &lt;beans xmlns="http://...

    Spring MVC 拦截器入门例子

    在Spring Boot应用中,可以使用`@Configuration`和`@EnableWebMvc`注解,然后在类中使用`@Bean`注解声明拦截器: ```java @Configuration @EnableWebMvc public class WebConfig implements WebMvcConfigurer { @...

    spring配置JSON拦截器VIEW

    标题中的“spring配置JSON拦截器VIEW”指的是在Spring框架中设置JSON数据的处理方式,特别是通过拦截器(Interceptor)来优化视图层(View)的响应。在Web开发中,拦截器是一种常用的机制,用于在请求被实际处理之前...

    Spring MVC 3 结合DWZ 框架编写拦截器判断session是否过期

    在本文中,我们将深入探讨如何在Spring MVC 3框架中结合DWZ(Dynamic Web Zone)前端框架,利用拦截器(Interceptor)来判断用户的session是否已经过期。这有助于提高应用程序的安全性和用户体验,防止用户在未登录...

    Spring拦截器,高级参数绑定

    Spring MVC中的拦截器是基于AOP(面向切面编程)原理实现的,可以理解为对Controller方法调用的预处理和后处理。下面将详细探讨Spring拦截器的使用以及高级参数绑定和Controller返回值的相关知识。 首先,我们创建...

    基于java的企业级应用开发:拦截器.ppt

    本文将深入探讨Spring MVC中的拦截器,包括其定义、配置以及执行流程。 ### 1. 拦截器概述 拦截器在Spring MVC中扮演着关键角色,它们可以在请求处理链的不同阶段介入,提供了对请求处理流程的灵活控制。拦截器...

    SpringMVC拦截器

    然后在 `spring-mvc.xml` 配置文件中注册该拦截器: ```xml &lt;mvc:interceptors&gt; &lt;mvc:interceptor&gt; &lt;mvc:mapping path="/**" /&gt; &lt;/mvc:interceptor&gt; &lt;/mvc:interceptors&gt; ``` 在这个例子中,`/**` 表示拦截...

    spring拦截器的一个简单实例

    通过源码分析,我们可以看到拦截器是如何插入到Spring MVC生命周期中的,以及如何利用它来扩展和定制应用的行为。在实际项目中,合理地运用拦截器可以极大地提高代码的可维护性和功能的灵活性。

    Spring Controller拦截器配置

    本文将详细介绍如何在Spring MVC中配置一个简单的拦截器来实现用户Session的存在性检查,以及当Session不存在时,自动跳转到登录页面。 #### 二、XML配置详解 拦截器可以通过XML文件进行配置。下面的示例展示了...

    date0615拦截器配置.zip

    2. **注册拦截器**:然后,在Spring的配置文件中注册你创建的拦截器,这可以通过`&lt;mvc:interceptors&gt;`标签完成。 ```xml &lt;mvc:interceptors&gt; &lt;mvc:interceptor&gt; &lt;mvc:mapping path="/somePath/**"/&gt; &lt;!-- 可以...

    spring拦截器的简单例子

    标签中提到的“源码”意味着理解 Spring 拦截器的工作原理,可以通过查看 Spring 框架的源代码,了解内部的调度机制。而“工具”可能指的是开发者可以借助 IDE 的调试工具,如 Eclipse 或 IntelliJ IDEA,进行断点...

    Spring MVC Locale 的使用 中文 英文 等语言 切换

    这可以通过在`&lt;mvc:interceptors&gt;`标签中配置来实现: ```xml &lt;mvc:interceptors&gt; &lt;bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"&gt; &lt;/mvc:interceptors&gt; ``` 这里,`paramName`...

    Spring MVC 拦截器

    - XML配置:在Spring的配置文件中,通过`&lt;mvc:interceptors&gt;`标签来定义拦截器,然后在`&lt;bean&gt;`中定义具体的拦截器实例,通过`&lt;mvc:mapping&gt;`指定需要拦截的URL。 - 注解配置:使用`@EnableWebMvc`开启Web MVC配置...

    mvc的拦截器控制权限的例子

    在提供的`demo-mvc`压缩包中,应该包含了完整的Spring MVC项目,包括拦截器的实现、配置以及相关的权限验证逻辑。通过分析和运行这个示例,你可以更深入地理解Spring MVC拦截器如何用于权限控制。

    java之spring mvc之拦截器.docx

    在Spring MVC框架中,拦截器(Interceptor)是一个...通过以上描述,我们可以了解到Spring MVC中的拦截器机制以及如何自定义和配置拦截器来实现特定的功能。这为开发者提供了灵活的手段来增强应用程序的功能和安全性。

    springmvc(自定义拦截器的使用)

    在Spring MVC的配置文件中,你需要使用`&lt;mvc:interceptors&gt;`标签来定义拦截器集合。每个拦截器可以由`&lt;mvc:interceptor&gt;`标签定义,并通过`&lt;mvc:mapping&gt;`指定其匹配的URL路径。 ```xml &lt;mvc:interceptors&gt; &lt;!-- ...

    SpringMvc 拦截器

    在Spring MVC框架中,拦截器(Interceptor)是一个强大的工具,用于在请求被控制器处理之前或之后执行特定的逻辑。它们可以用来实现通用的功能,如权限验证、日志记录、性能统计等,避免在每个控制器方法中重复编写...

    防止SpringMVC拦截器拦截js等静态资源文件的解决方法

    在SpringMVC的配置文件中(通常是spring-mvc.xml),可以通过配置&lt;mvc:interceptors&gt;元素来定义一个或多个拦截器。在定义拦截器时,可以使用&lt;mvc:exclude-mapping&gt;元素来指定不希望拦截器拦截的路径。这些路径包括...

    spring-boot 自定义xml配置web请求拦截器

    标题中的"spring-boot 自定义xml配置web请求拦截器"指的是在Spring Boot项目中,通过XML配置方式实现对Web请求的拦截处理。这涉及到Spring Boot的Web层架构、AOP(面向切面编程)以及自定义拦截器的概念。Spring ...

Global site tag (gtag.js) - Google Analytics