0 0

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 交给userHandler
2011年6月15日 09:38

2个答案 按时间排序 按投票排序

0 0

采纳的答案

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
0 0

你可是是通过

	<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

    在 Spring MVC 中使用拦截器需要以下步骤: 1. **定义拦截器类**:实现 `HandlerInterceptor` 接口或继承 `HandlerInterceptorAdapter` 类。 2. **注册拦截器**:在配置文件中注册拦截器,指定需要拦截的 URL 模式。...

    基本的spring mvc + spring security实现的登录(无数据库)

    - **配置**:通常通过Java配置或XML配置来设置Spring MVC的组件,如定义映射路径、拦截器等。 - **MVC模式**:Model代表业务数据,View负责渲染视图,Controller处理用户请求并协调Model和View。 2. **Spring ...

    spring mvc过程详解

    1. **拦截器**:Spring MVC 支持多种类型的拦截器,包括但不限于预处理拦截器、后处理拦截器等,它们可以在请求处理前后执行自定义的逻辑。 2. **异常处理**:Spring MVC 提供了多种机制来处理异常,可以通过自定义...

    IDEA 搭建Spring MVC环境示例二

    在本示例中,我们将详细探讨如何使用IntelliJ IDEA(IDEA)和Maven来搭建Spring MVC项目环境。Spring MVC是Spring框架的一个模块,它为构建Web应用程序提供了模型-视图-控制器(MVC)架构。Maven则是一个强大的项目...

    spring mvc项目创建

    随着项目的发展,你可能需要添加更多的配置,如拦截器、AOP(面向切面编程)、数据访问层(DAO)以及事务管理等。Javadoc(如 javademo 中的文档)通常会提供类和方法的详细说明,帮助理解框架的内部工作原理和如何...

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

    此外,如果需要在全局范围内改变应用的`Locale`,可以创建一个自定义的`HandlerInterceptor`,在拦截器中处理`Locale`的切换逻辑。这样,当用户请求特定的URL时,系统会自动更新`Locale`,并重定向到原来的请求URL,...

    spring mvc demo

    - **拦截器(Interceptor)**:使用Spring MVC的拦截器机制实现全局的功能,如日志记录、权限控制等。 - **数据绑定与验证(Data Binding and Validation)**:使用`@Valid`注解进行数据验证,并显示错误信息。 - **...

    spring-mvc helloworld demo

    - `dispatcher-servlet.xml` 是 Spring MVC 的配置文件,其中定义了视图解析器、拦截器、模型-视图对以及其他组件。 4. **编写 Controller**: - 创建一个简单的 `HelloWorldController` 类,该类包含一个处理...

    spring MVC快速入门-深入分析.pdf

    - **拦截器**:Spring MVC 支持拦截器机制,可以在请求处理前后执行特定的操作,如权限验证、日志记录等。 - **异常处理**:通过配置 `@ExceptionHandler` 或 `@ControllerAdvice` 注解的方法来处理全局异常。 ####...

    springmvc(spring4版本)+自带登录和拦截器

    本项目是一个基于Spring 4的Spring MVC实现,内含登录功能和拦截器,可以直接运行,为开发者提供了一个快速开发的基础模板。 首先,让我们详细了解一下Spring MVC的核心概念: 1. **DispatcherServlet**:它是...

    spring-mvc-study.zip_spring mvc_spring mvc项目_springmvc

    - **MVC配置**:通常在 `WebConfig.java` 或者 `spring-servlet.xml` 文件中配置,包括拦截器、视图解析器、转换器、格式化器等。 本项目 "spring-mvc-study" 对于初学者来说是一个很好的起点,它提供了一个基础的 ...

    基于Maven的spring mvc

    综上所述,"基于Maven的Spring MVC"项目涵盖了Spring MVC的核心概念、Maven的项目管理和构建功能,以及如何通过拦截器增强应用程序的功能。通过学习和实践这些知识点,开发者可以更高效地构建Java Web应用。

    spring mvc 项目

    9. **Interceptor**:拦截器,可以在请求被Controller处理前或处理后执行一些额外的操作,如权限验证、日志记录等。 10. **Maven**:项目构建工具,用于管理项目依赖、构建生命周期和插件。在本项目中,所有代码和...

    Spring MVC 学习笔记

    `servlet-context.xml`是Spring MVC的核心配置文件,用于定义处理器映射器、视图解析器、拦截器等组件。在这个例子中,创建了这个文件并放置在指定的路径下。在这里,你可以配置如模型-视图-适配器(Model-View-...

    基于spring mvc+spring data+Thymeleaf+mysql的简单工程

    Spring MVC中的关键组件包括DispatcherServlet、Controllers、Models、Views以及一系列的拦截器和转换器。 **Spring Data** 是Spring框架的一个模块,旨在简化数据库访问。它提供了对各种数据存储的抽象,包括JPA...

    Spring MVC入门实例

    Spring MVC 提供了多种高级特性,如拦截器(Interceptor)、数据绑定、表单验证、国际化等。随着对框架的深入理解,可以实现更复杂的业务需求。 总结,Spring MVC 作为Java Web开发的强大工具,通过这个简单的入门...

    spring mvc的例子

    - `src/main/resources`:存放配置文件,如spring-mvc.xml、application.properties等。 - `src/main/webapp/WEB-INF/web.xml`:Web应用的部署描述符。 - `src/main/webapp/WEB-INF/spring`:Spring MVC的特定配置...

    Spring Mvc——第一个应用程序

    - **拦截器(Interceptor)**:可以对请求进行预处理和后处理,如日志记录、权限检查等。 - **转换器和格式化器(Converter & Formatter)**:帮助将请求参数转换为 Java 对象,或将 Java 对象转换为响应格式。 - **...

    spring mvc入门小例子

    `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页面。...

    JavaSpringMvc的jar包

    5. **spring-aop.jar**:支持 AOP 面向切面编程,允许开发者定义方法拦截器和切入点表达式。 6. **spring-expression.jar**:Spring 的表达式语言(SPeL),用于在运行时查询和操作对象图。 7. **servlet-api.jar**...

Global site tag (gtag.js) - Google Analytics