这个错误,为在页面报404错误。
web.xml 配置如下:
<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-servlet.xml</param-value>
</init-param>
<!-- load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。
取值1,2,3,4,5代表的是优先级,而非启动延迟时间 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<url-pattern>/</url-pattern> 这样的配置,就是把所有的请求,都交给spring 的DispatcherServlet前端控制器,做统一处理。
这样,就会造成,无法访问所有静态资源,如:html,js,css,image等等。
所以,我们需要让spring做一件事,就是如果访问的是静态资源,就让这个请求交给web容器处理。
方法一:直接在 web.xml 中,配置默认的servlet-mapping。代码如下
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/*.html</url-pattern>
<url-pattern>/*.css</url-pattern>
<url-pattern>/*.js</url-pattern>
</servlet-mapping>
//这里的 default 配置。spring 就会知道,应该使用web容器的处理。
而下面的<url-pattern> 的配置,就是告诉 web处理哪些资源。
方法二: 就是在 springservlet-mvc.xml中加上一句 mvc标签:<mvc:default-servlet-handler />
<!--
在springMVC-servlet.xml中配置<mvc:default-servlet-handler />后,
会在Spring MVC上下文中定义一个
org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,
它会像一个检查员,对进入DispatcherServlet的URL进行筛查,
如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,
如果不是静态资源的请求,才由DispatcherServlet继续处理。
-->
<mvc:default-servlet-handler />
方法三:<mvc:resources />
<mvc:resources location="/,classpath:/page/" mapping="/resources/**"/>
/*
* location:静态资源的位置。多个用‘,’隔开。 我这里是的位置是:‘/’表示 web根路径。
*classpath:/page/ 表示 类路径下的page文件下的资源。
*
*都映射成/resources 而** 代表 所有子目录。
*
*如果 page下有个 html目录,下面有个index.html. 我们可以用:/resources/html/index.html
*如果WebContent下有个image目录,下面有个 ioc.png。 我们也可以用:/resources/image/ioc.png.
*至于 不同文件夹下相同的 文件名,会不会报错。我还没试过。