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 Boot +mysql的学生宿舍管理系统源代码+数据库

    系统还使用拦截器实现了登录验证和基于 RBAC 模型的权限管理。 技术栈 后端:Spring Boot、Spring MVC、MySQL、Maven、MyBatis 前端:jsp、Bootstrap、layui 修改数据库配置: 打开 src/main/resources/application-...

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.5.3.1. RedirectView 13.5.3.2. redirect:前缀 13.5.3.3. forward:...

    Spring中文帮助文档

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器(ViewResolver) 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. ...

    Spring API

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器(ViewResolver) 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. ...

    图书系统的Web实现-JAVA

    涉及的知识:拦截器,spring mvc,mybatis等  详细操作可以参考:https://blog.csdn.net/2302_76339343/article/details/136084831 Git地址:https://gitee.com/an-indestructible-blade/project

    Spring 2.0 开发参考手册

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2....

    springboot学习思维笔记.xmind

    拦截器配置 @ControllerAdivce @ExceptionHandler @InitBinder @ModelAttribute 其他配置 ViewController 路径匹配参数配置 WebMvcConfigurerAdapter WebMvcConfigurer ...

    spring chm文档

    13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2....

    springmybatis

    mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in ...

    基于SSM架构实现的大型分布式购物网站-B2C项目源码+项目说明.zip

    - 2、spring前端控制器的配置 - 3、post乱码过滤器 - 4、请求拦截 ###数据库连接池: Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、...

    java外卖ssm项目源码-NeuSoft-Cloud-Hospital:东软医院信息系统(HIS)

    拦截器 MyBatis MyBatis Generator 生成 bean 与 SQL 语句 MyBatis 数据库连接池 PageHelper: MyBatis 的分页插件 MySQL 关系型数据库 AspectJ 面向切面编程扩展 log4j 日志记录 JUnit4 单元测试 Redis Apache Shiro...

Global site tag (gtag.js) - Google Analytics