'/'和‘/*’差异造成的No mapping found for HTTP request with URI [/springMVC/welcome.jsp] in DispatcherServlet with name 'springmvc'

在采用springMVC框架的时候所遇到的一个小问题,其中web.xml中关于servlet的配置如下:

<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>

重点是url-pattern 部分的配置,在配置为/*时,会报错WARNING: No mapping found for HTTP request with URI [/springMVC/welcome.jsp] in DispatcherServlet with name 'springmvc'

但是当将该部分配置为/时竟然运行ok了。

网上关于两者的解释如下:

一、<url-pattern>/</url-pattern>: 
会匹配到/springmvc这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url。

二、<url-pattern>/*</url-pattern>: 
会匹配所有的url:路径型的和后缀型的url(包括/springmvc,.jsp,.js和*.html等)。 

根据上述说明,按理说第二种配置应该包含第一种才对,可是,运行仍然没有出现结果,也就是说第一种能够运行,第二种一定能够运行,但是实际并没有如此,很是奇怪。

本博主支持并坚持原创,本博客文章将以原创为主。
原文地址:https://www.cnblogs.com/xiaoyao-001/p/8119878.html