springMVC 不拦截静态资源

SpringMVC 静态资源配置,使得可以通过url直接访问!

 

     刚开始使用springMVC开发web时,配置了DispatcherServlet拦截所有的请求(包括静态资源),对于每个请求都必须在Controller层编写相应的处理器处理。

 <!-- 配置前端控制器 -->
  <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:spring/spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>/</url-pattern><!--/表示拦截所有请求 -->
  </servlet-mapping>

按照上面的拦截配置,将无法访问http://localhsot:8080/views/index.jsp等页面静态资源。

 

下面列出三种方法解决问题:

 

方法一:在web.xml的DispatcherServlet中添加  <url-pattern>/views/</url-pattern>请求拦截;其作用是所有/views开头的请求均被转发到views目录下处理。

 <!-- 配置前端控制器 -->
  <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:spring/spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>/views/</url-pattern> <!--所有/views请求都会映射到views目录下-->
    <url-pattern>/</url-pattern>       <!--/表示拦截所有请求 -->
  </servlet-mapping>

方法二:在springmvc.xml文件中添加如下资源映射配置,对于/views/xxx请求直接转到目录views下处理。

  <!--views目录下的静态资源不拦截-->
  <mvc:resources mapping="/views/**" location="/views/"></mvc:resources>

方法三:所有静态资源均不被配置的DispatcherServlet拦截

 <!--所有静态资源都通过默认处理器处理-->
<mvc:default-servlet-handler/>

  其它的如同 JS、CSS也可按照上面的方法之一配置,避免被DispatcherServlet拦截。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值