mvc:exclude-mapping
时间: 2023-04-26 20:06:40 浏览: 65
mvc:exclude-mapping是Spring MVC框架中的一个配置项,用于指定不需要被处理的请求路径。在配置文件中,可以通过该项来排除某些请求路径,使得这些路径不会被Spring MVC框架处理。这样可以避免不必要的处理,提高系统的性能和效率。
相关问题
<context:component-scan base-package="com.ischoolbar.programmer.controller"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <!-- 启动 mvc 注解驱动 --> <mvc:annotation-driven></mvc:annotation-driven> <!-- 启动定时任务 --> <task:annotation-driven/> <!-- 静态资源处理 --> <mvc:default-servlet-handler/> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property> </bean> <!-- 文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 上传文件大小限制 --> <property name="maxUploadSize"> <value>10485760</value> </property> <!-- 请求的编码格式, 和 jsp 页面一致 --> <property name="defaultEncoding"> <value>UTF-8</value> </property> </bean> <!-- 后台访问拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <mvc:exclude-mapping path="/system/login"/> <mvc:exclude-mapping path="/system/get_cpacha"/> <mvc:exclude-mapping path="/h-ui/**"/> <mvc:exclude-mapping path="/easyui/**"/> <bean class="com.ischoolbar.programmer.interceptor.LoginInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> </beans>解释代码
这是一个 Spring MVC 的配置文件示例,主要用于配置 Spring MVC 的相关组件和功能。下面对各个部分进行解释:
1. `<context:component-scan>`:扫描指定包路径下的组件,这里扫描的是 `com.ischoolbar.programmer.controller` 包下的所有组件,其中 `@Controller` 注解的组件会被注册为 Spring MVC 的控制器。
2. `<mvc:annotation-driven>`:启用 Spring MVC 的注解驱动功能,包括支持注解的控制器、参数解析器、视图解析器等功能。
3. `<task:annotation-driven/>`:启用 Spring 的定时任务功能,用于执行定时任务。
4. `<mvc:default-servlet-handler/>`:启用 Spring MVC 的静态资源处理功能,用于处理静态资源的请求。
5. `<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">`:配置 Spring MVC 的视图解析器,用于将逻辑视图名称解析为物理视图(JSP 页面)。
6. `<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">`:配置文件上传的解析器,用于处理文件上传的请求。
7. `<mvc:interceptors>`:配置 Spring MVC 的拦截器,用于拦截请求并进行处理。
其中,`<mvc:mapping path="/**"/>` 表示拦截所有请求,`<mvc:exclude-mapping>` 表示排除指定路径的请求不被拦截。在这个示例中,拦截器的作用是进行登录状态的验证,如果用户未登录,则跳转到登录页面。
<mvc:interceptors> <!-- 使用bean直接定义在<mvc:interceptors>下面的拦截器将拦截所有请求 --> <!-- 这个是全局的,当使用下面的拦截器1和拦截器2时,需要把这个拦截器注释掉 --> <bean class="com.springmvc.interceptor.MyInterceptor"/> <!-- 定义多个拦截器,顺序执行 --> <mvc:interceptor> <!-- 拦截器1 --> <mvc:mapping path="/**"/> <!-- 配置拦截器作用的路径 /**表示拦截所有url路径包括子url路径--> <mvc:exclude-mapping path=""/> <!-- 配置不需要拦截器作用的路径 --> <!-- 定义在<mvc:interceptor>下面的拦截器,表示匹配路径请求才进行拦截 --> <bean class="com.springmvc.interceptor.MyInterceptor1"></bean> </mvc:interceptor> <mvc:interceptor> <!-- 拦截器2 --> <mvc:mapping path="/hello" /> <!-- 配置拦截器作用的路径 --> <!-- 定义在<mvc:interceptor>下面的拦截器,表示匹配路径请求才进行拦截 --> <bean class="com.springmvc.interceptor.MyInterceptor2"></bean> </mvc:interceptor> </mvc:interceptors>如何实现
这段配置是针对Spring MVC中的拦截器配置。在这里,使用了<mvc:interceptors>标签来定义拦截器。以下是实现步骤:
1. 创建拦截器类:在com.springmvc.interceptor包下创建MyInterceptor、MyInterceptor1和MyInterceptor2三个类,它们需要实现Spring的HandlerInterceptor接口或者继承HandlerInterceptorAdapter类。
2. 定义全局拦截器(可选):如果你想要一个拦截所有请求的全局拦截器,可以使用<bean>标签直接在<mvc:interceptors>下定义一个拦截器(这里是MyInterceptor类),并将其作用路径配置为"/**"。
3. 定义多个拦截器:使用<mvc:interceptor>标签来定义多个拦截器。每个<mvc:interceptor>标签内部包含<mvc:mapping>标签用于配置拦截器作用的路径,并且可以使用<mvc:exclude-mapping>标签来配置不需要拦截器作用的路径。
4. 配置拦截器类:在每个<mvc:interceptor>标签下,通过<bean>标签和class属性来创建对应的拦截器类实例。
通过以上配置,拦截器将会按照顺序执行。全局拦截器会拦截所有请求,而其他定义的拦截器会根据配置的路径进行匹配和拦截操作。你可以根据实际需求,配置拦截器的作用路径和排除路径,以及在拦截器中编写自定义的业务逻辑。