关于[No mapping found for HTTP request with URI]的问题解决方法

   在我们将Web项目部署到服务器时,有时会出现静态资源找不到的问题,如在我发布一个Spring MVC的项目时会报出这样的错误“No mapping found for HTTP request with URI [/HelloWorld/login] in DispatcherServlet with name 'springmvc'”,经过网上的查阅,查看各种博客最后通过实验总结得出原因:
    <servlet-mapping>的<url-pattern>/</url-pattern>把所有的请求都交给spring去处理了,而所有available的请求url都是在Constroller里使用类似@RequestMapping(value = "/login/{user}", method = RequestMethod.GET)这样的注解配置的,这样的话对js/css/jpg/gif等静态资源的访问就会得不到。
    有以下一些解决方法:

一、在web.xml里添加如下的配置

<servlet-mapping>
     <servlet-name>default</servlet-name>
     <url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.gif</url-pattern>

 </servlet-mapping>
 <servlet-mapping>
     <servlet-name>default</servlet-name>
     <url-pattern>*.jpg</url-pattern>
 </servlet-mapping>
 <servlet-mapping>
     <servlet-name>default</servlet-name>
     <url-pattern>*.js</url-pattern>
 </servlet-mapping>

二、在spring的配置文件中添加如下一行(注意,需要是spring3.0.5以上版本):

<mvc:default-servlet-handler/>

以上是实验过的方法

原文参考连接