之前也都提到过,web.xml会通过<servlet>和<servlet-mapping>来确定url和指定contoller文件,乃至于jsp页面的联系。
但是有一个<welcome-file-list>的标签用于指定开始的欢迎页面,显然两者会发生冲突,web程序将会如何处理呢?很简单,来做个实验即可,这时就需要物理的控制变量法了,我们设置welcome欢迎页和servlet处理的页不同,配置如下所示:
<welcome-file-list> <welcome-file>/WEB-INF/jsp/falsepaswd.jsp</welcome-file> </welcome-file-list>
注意!路径是以web-app为根目录的,是/WEB-INF/jsp/falsepaswd.jsp,而不是WEB-INF/jsp/falsepaswd.jsp,千万不要少了前面的斜杠。
<servlet> <servlet-name>spring-mvc</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring-mvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
初始的url配置方式如下:
当url是上图中那样时,servlet会起作用,而不管上图中的url是什么,welcome-file都会先出现,显然这时两者会起冲突。
直接运行最终结果现实,servlet的优先级还是要高于welcome页面:
显示结果是经servlet及controller文件处理后的结果!
当然,此时删除welcome标签不会对上述结果有任何影响。
如果想让welcome标签起效,这是我们只需要修改初始url即可,只要不与serlvet冲突即可。
此时url无任何冲突!
此时成功跳转到welcome页面:
我们再直接键入/hello,仍能进入相关页面:
再删除,也能成功返回,看来该url已经与welcome页面相绑定
关于<welcome-file-list>标签的问题