在javaweb项目中,我们可以通过配置web.xml中的<welcome-file-list>设置起始页,如下:
<welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
通过此配置,在访问url:http://localhost:8080/项目名 时,会直接进入index.html或index.jsp页面中。
但是此种方法只能将起始页配置成静态页面,若是配置成动态url,如:
<welcome-file-list> <welcome-file>user/login.shtml</welcome-file> </welcome-file-list>
在访问时,会报404错误。
这是由于tomcat的逻辑流程:
针对welcome-file中的配置,tomcat会判断根目录文件是否存在,若不存在,直接返回404。
解决办法:在webapp目录下建立user/login.shtml,用于欺骗tomcat。tomcat判断根目录文件存在,继续流程,之后交由spring处理,成功配置起始页为动态url。
web.xml中spring配置如下:
<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:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>*.shtml</url-pattern> </servlet-mapping>