Spring mvc Restful风格 静态文件访问的处理

参考:http://blog.csdn.net/hello5orld/article/details/9407905

我目前了解到Spring mvc请求方式下面几种:

第一种:.do等待后缀的方式 (非Restful风格的请求)

web.xml配置

<span style="font-size:12px;"> <servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <url-pattern>/*.do</url-pattern>
  </servlet-mapping></span>

如:127.0.0.1:8080/xxx/xx.do 或者 127.0.0.1:8080/xxx/xx.xx

如果你是这种方式的拦截方式,就不用考虑静态文件的访问不到的问题

第二种:Restful风格

web.xml配置

<span style="font-size:12px;"> <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping></span>

url的请求方式:

localhost:8080/webdemo/index/数字/blog/字符串

localhost:8080/webdemo/index/数字

等等

restful风格很方便很自由。

带来的麻烦:

<span style="color:#CC0000;"><strong><span style="font-size:12px;"><url-pattern>/</url-pattern> 这种方式,他会拦截所有的请求。比如我们jsp中使用的/style/image/xx.jpg等都会被当成是controller的请求。
所有,会出现404找不到资源的问题。</span></strong></span>

解决方案:

第一种方法:

采用web.xml中的servlet进行请求的拦截。

<span style="font-size:12px;"><span style="color:#FF0000;"><servlet-mapping>     
    <servlet-name>default</servlet-name>    
    <url-pattern>*.jpg</url-pattern>       
  </servlet-mapping> 
  <servlet-mapping>     
    <servlet-name>default</servlet-name>    
    <url-pattern>*.png</url-pattern>       
  </servlet-mapping> 
有几种资源要处理你就必须配置多少种拦截</span>
</span>
第二种方法:

在xxx-servlet.xml配置文件中配置

采用<mvc:resources location="/image/" mapping="image/**" cache-period="31536000"/>

location:这是我们网站上具体的路径

mapping:这个是我们页面引用的路径

第三种方法:

在xxx-servlet.xml配置文件中配置

<mvc:default-servlet-handler/>

这种方式表示,默认处理对所有资源都可以访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值