springMvc静态资源拦截问题

测试的时候发现:如果直接访问web项目的html等静态资源,不能访问

原因如下: 当web.xml中url-pattern配置为"/"时,会导致系统中的静态资源被拦截

如何解决:

  1)修改url-pattern    2)进行静态资源映射     3)开放tomcat的defaultServlet

我测试了解决方案2和3,做了如下的配置:

web.xml:

<!-- springmvc核心 -->
  <servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springmvc.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>

springmvc.xml:

1)映射静态资源

<!-- 解决静态资源问题
   mapping:映射
   location:本地资源路径,注意必须是webapp根目录下的路径。两个*,它表示映射resources/下所有的URL,包括子路径(即接多个/)

-->
     <mvc:resources location="/upload/**" mapping="/upload/"/>
     <mvc:resources location="/js/*" mapping="/js/*"/>
    <mvc:resources location="/css/**" mapping="/css/**"/> 

或者

2)开放tomcat的defaultServlet,只需要添加一行配置,是不是很方便

<mvc:default-servlet-handler/>

参考:http://www.cnblogs.com/yank/p/4477204.html

  

时间: 2024-10-09 15:39:56

springMvc静态资源拦截问题的相关文章

SpringMVC静态资源拦截的问题

通常在web.xml中的核心控制器的DispatcherServlet中的url-pattern属性配置成类似“/”的拦截路径,但是会出现静态资源找不到的问题,比如js脚本.图片.css等无法加载,那么我们就需要进行一定的处理了: 1.配置web.xml 既然是web.xml搞得事,自然它本身就能处理,加入下面的节点即可 1 <servlet-mapping> 2 <servlet-name>springmvc</servlet-name> 3 <url-patt

SpringMVC静态资源处理[转]

SpringMvc配置DispatchServlet对所有请求进行过滤: <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> <

springmvc 静态资源 配置

SpringMVC提供<mvc:resources>来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下方案进行解决: 方案一.拦截器中增加针对静态资源不进行过滤(涉及spring-mvc.xml) 1 <mvc:resources location="/" mapping="/**/*.js"/> 2 <mvc:resources location="/" mapping=

关于springmvc静态资源路径问题

web.xml配置,servlet-mapping的url-pattern设置成“/”,/就是指拦截所有的url,但不包括.jsp..html..js这样的文件. 因为根目录webapp下的所有静态资源在web.xml中设置了/导致被过滤,所以在springmvc的配置文件中进行配置,将这些静态资源交由dispatchservlet去处理,选择需要被放行的资源文件,springmvc进行配置: <mvc:default-servlet-handler/>是放行所有的静态资源文件,当然也可以用&

SpringMVC - 静态资源放行

什么是静态资源? css.js.图片.html等都是静态资源 放行静态资源 1.不使用 springmvc 框架分析 不使用 springmvc 框架,这些静态资源请求都会由 tomcat 的默认的 default 进行处理. 2.使用了 springmvc 框架分析 当配置的 DispatcherServlet 的映射路径不为 / 时,对静态资源的请求最终会由 tomcat 的默认配置来处理,所以不影响静态资源的正常访问. 如果配置的 DispatcherServlet 的映射路径为 / 时,

spring mvc 静态资源拦截

在使用spring mvc,servlet配置拦截/所有请求时,静态资源html.js.css等会被拦截,无法访问 <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern></servlet-mapping> 解决办法:1.在mvc配置中增加 <mvc:default-servlet-handler/> 2.

springmvc 静态资源访问的问题

<mvc:resources mapping="/images/**" location="/images/" cache-period="31556926"/> <mvc:resources mapping="/js/**" location="/js/" cache-period="31556926"/> <mvc:resources mapping=&

SpringMVC 静态资源处理

<!-- 不处理静态内容 --><mvc:default-servlet-handler/><!--前端控制器,哪些静态资源不拦截--><mvc:resources location="/css/" mapping="/css/**"/><mvc:resources location="/images/" mapping="/images/**"/><mvc:r

Spring-mvc 静态资源不拦截

在Spring-mvc.xml文件中加入这个就可以了 <!-- 用于对静态文件进行解析 --> <mvc:annotation-driven /> <mvc:resources mapping="/assets/**" location="/assets/" />