学科分类
目录
SSM框架

拦截器的配置

要使自定义的拦截器类生效,还需要在Spring MVC的配置文件中进行配置。配置代码如下所示。

<!-- 配置拦截器 -->
<mvc:interceptors>
   <!--使用bean直接定义在<mvc:interceptors>下面的Interceptor将拦截所有请求-->
   <bean class="com.itheima.interceptor.CustomInterceptor"/>
   <!-- 拦截器1 -->
   <mvc:interceptor>
       <!-- 配置拦截器作用的路径 -->
       <mvc:mapping path="/**"/>
       <!-- 配置不需要拦截器作用的路径 -->
       <mvc:exclude-mapping path=""/>
       <!-- 定义在<mvc:interceptor>下面的,表示对匹配路径的请求才进行拦截-->  
       <bean class="com.itheima.interceptor.Interceptor1" /> 
   </mvc:interceptor>
   <!-- 拦截器2 -->
   <mvc:interceptor>
       <mvc:mapping path="/hello"/>
       <bean class="com.itheima.interceptor.Interceptor2" />       
   </mvc:interceptor>
   ...
</mvc:interceptors>

在上述代码中,<mvc:interceptors>元素用于配置一组拦截器,其子元素<bean>中定义的是全局拦截器,它会拦截所有的请求;而<mvc:interceptor>元素中定义的是指定路径的拦截器,它会对指定路径下的请求生效。<mvc:interceptor>元素的子元素<mvc:mapping>用于配置拦截器作用的路径,该路径在其属性path中定义。如上述代码中path的属性值“/**”表示拦截所有路径,“/hello”表示拦截所有以“/hello”结尾的路径。如果在请求路径中包含不需要拦截的内容,还可以通过<mvc:exclude-mapping>元素进行配置。

需要注意的是,<mvc:interceptor>中的子元素必须按照上述代码的配置顺序进行编写,即<mvc:mapping … />→<mvc:exclude-mapping … />→<bean … />的顺序,否则文件会报错。

点击此处
隐藏目录