-
spring mvc拦截器 和 mvc:resources 标签问题3
我发现在配置了mvc:resources的情况下 资源请求居然还是进入到了拦截器内
这是为什么??
资源文件干嘛要走程序? 我的spring mvc拦截请求是 / 没有加后缀
拦截器的拦截url <mvc:mapping path="/**" />
结果在拦截器里面 打印
String uri = request.getRequestURI();
System.out.println(uri);
输出
/cms_res/dz/images/index_r19_c3.gif
/cms_res/dz/images/index_r23_c3.gif
之类的资源路径
难道spring 着这种做原本就是为了防止盗链之类的?还是说我哪里弄错了?
css之类的都正常显示
问题补充:sinper 写道你可是是通过<mvc:interceptors> <bean class="com.MyHandlerInterceptor"></bean> </mvc:interceptors>
这种方式来添加拦截器的,这样会对所有的HandlerMapping进行拦截,试试只针对DefaultAnnotationHandlerMapping做拦截
问题是 那种方法无法指定拦截路径。。。或者说我不知道怎么指定。。
mvc:interceptors 这种配置方法为什么不能把mvc:resources的过滤掉
而且有一点 我的spring 控制器的路径是不带后缀名的
例如/user 而不是/user.do
可能如果是/user.do的方式 资源文件就不会进入拦截方法!
问题是 就算spring 拦截范围为/xx/** 为何资源文件的请求还源源不断的进入拦截器方法中
问题补充:sinper 写道
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <list> <bean class="com.MyHandlerInterceptor"/> </list> </property> </bean>
我需要怎么指定mapping url路径呢。
例如 /login 交给loginHandler
/user 交给userHandler2011年6月15日 09:38
2个答案 按时间排序 按投票排序
-
采纳的答案
spring的DispatchServlet会通过你的请求查找DefaultAnnotationHandlerMapping
如果你在web.xml里配置了<servlet-mapping> <servlet-name>spring3</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
当你发出http://mydomain/hello.gif的请求时,spring3会去所有的controller里查找annotation名称为
@RequestMapping("/hello.gif"),如果找到就会先进入这个RequestMapping的拦截器
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <list> <bean class="com.MyHandlerInterceptor"/> </list> </property> </bean>
这就是只针对通过annotation来配置的拦截器
如果DispatchServlet没有找到对应的annotation,便会将请求发送给SimpleUrlHandlerMapping,在进入这个HandlerMapping前同样会坚持是否配置有interceptor,而这种配置方法<mvc:interceptors> <bean class="com.MyHandlerInterceptor"></bean> </mvc:interceptors>
会将进入SimpleUrlHandlerMapping的请求也拦截掉,这就是为什么你的resources会被拦截器拦截到
2011年6月20日 17:18
-
你可是是通过
<mvc:interceptors> <bean class="com.MyHandlerInterceptor"></bean> </mvc:interceptors>
这种方式来添加拦截器的,这样会对所有的HandlerMapping进行拦截,试试只针对DefaultAnnotationHandlerMapping做拦截
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <list> <bean class="com.MyHandlerInterceptor"/> </list> </property> </bean>
2011年6月20日 12:55
相关推荐
在 Spring MVC 中使用拦截器需要以下步骤: 1. **定义拦截器类**:实现 `HandlerInterceptor` 接口或继承 `HandlerInterceptorAdapter` 类。 2. **注册拦截器**:在配置文件中注册拦截器,指定需要拦截的 URL 模式。...
- **配置**:通常通过Java配置或XML配置来设置Spring MVC的组件,如定义映射路径、拦截器等。 - **MVC模式**:Model代表业务数据,View负责渲染视图,Controller处理用户请求并协调Model和View。 2. **Spring ...
1. **拦截器**:Spring MVC 支持多种类型的拦截器,包括但不限于预处理拦截器、后处理拦截器等,它们可以在请求处理前后执行自定义的逻辑。 2. **异常处理**:Spring MVC 提供了多种机制来处理异常,可以通过自定义...
在本示例中,我们将详细探讨如何使用IntelliJ IDEA(IDEA)和Maven来搭建Spring MVC项目环境。Spring MVC是Spring框架的一个模块,它为构建Web应用程序提供了模型-视图-控制器(MVC)架构。Maven则是一个强大的项目...
随着项目的发展,你可能需要添加更多的配置,如拦截器、AOP(面向切面编程)、数据访问层(DAO)以及事务管理等。Javadoc(如 javademo 中的文档)通常会提供类和方法的详细说明,帮助理解框架的内部工作原理和如何...
此外,如果需要在全局范围内改变应用的`Locale`,可以创建一个自定义的`HandlerInterceptor`,在拦截器中处理`Locale`的切换逻辑。这样,当用户请求特定的URL时,系统会自动更新`Locale`,并重定向到原来的请求URL,...
- **拦截器(Interceptor)**:使用Spring MVC的拦截器机制实现全局的功能,如日志记录、权限控制等。 - **数据绑定与验证(Data Binding and Validation)**:使用`@Valid`注解进行数据验证,并显示错误信息。 - **...
- `dispatcher-servlet.xml` 是 Spring MVC 的配置文件,其中定义了视图解析器、拦截器、模型-视图对以及其他组件。 4. **编写 Controller**: - 创建一个简单的 `HelloWorldController` 类,该类包含一个处理...
- **拦截器**:Spring MVC 支持拦截器机制,可以在请求处理前后执行特定的操作,如权限验证、日志记录等。 - **异常处理**:通过配置 `@ExceptionHandler` 或 `@ControllerAdvice` 注解的方法来处理全局异常。 ####...
本项目是一个基于Spring 4的Spring MVC实现,内含登录功能和拦截器,可以直接运行,为开发者提供了一个快速开发的基础模板。 首先,让我们详细了解一下Spring MVC的核心概念: 1. **DispatcherServlet**:它是...
- **MVC配置**:通常在 `WebConfig.java` 或者 `spring-servlet.xml` 文件中配置,包括拦截器、视图解析器、转换器、格式化器等。 本项目 "spring-mvc-study" 对于初学者来说是一个很好的起点,它提供了一个基础的 ...
综上所述,"基于Maven的Spring MVC"项目涵盖了Spring MVC的核心概念、Maven的项目管理和构建功能,以及如何通过拦截器增强应用程序的功能。通过学习和实践这些知识点,开发者可以更高效地构建Java Web应用。
9. **Interceptor**:拦截器,可以在请求被Controller处理前或处理后执行一些额外的操作,如权限验证、日志记录等。 10. **Maven**:项目构建工具,用于管理项目依赖、构建生命周期和插件。在本项目中,所有代码和...
`servlet-context.xml`是Spring MVC的核心配置文件,用于定义处理器映射器、视图解析器、拦截器等组件。在这个例子中,创建了这个文件并放置在指定的路径下。在这里,你可以配置如模型-视图-适配器(Model-View-...
Spring MVC中的关键组件包括DispatcherServlet、Controllers、Models、Views以及一系列的拦截器和转换器。 **Spring Data** 是Spring框架的一个模块,旨在简化数据库访问。它提供了对各种数据存储的抽象,包括JPA...
Spring MVC 提供了多种高级特性,如拦截器(Interceptor)、数据绑定、表单验证、国际化等。随着对框架的深入理解,可以实现更复杂的业务需求。 总结,Spring MVC 作为Java Web开发的强大工具,通过这个简单的入门...
- `src/main/resources`:存放配置文件,如spring-mvc.xml、application.properties等。 - `src/main/webapp/WEB-INF/web.xml`:Web应用的部署描述符。 - `src/main/webapp/WEB-INF/spring`:Spring MVC的特定配置...
- **拦截器(Interceptor)**:可以对请求进行预处理和后处理,如日志记录、权限检查等。 - **转换器和格式化器(Converter & Formatter)**:帮助将请求参数转换为 Java 对象,或将 Java 对象转换为响应格式。 - **...
`src/main/webapp/WEB-INF/web.xml`(Servlet配置),`src/main/resources/spring/servlet-context.xml`(Spring MVC配置),以及`src/main/java/com/example/MyController.java`(控制器类)和对应的JSP页面。...
5. **spring-aop.jar**:支持 AOP 面向切面编程,允许开发者定义方法拦截器和切入点表达式。 6. **spring-expression.jar**:Spring 的表达式语言(SPeL),用于在运行时查询和操作对象图。 7. **servlet-api.jar**...