参考:http://blog.youkuaiyun.com/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/>
这种方式表示,默认处理对所有资源都可以访问。