你有这个
<servlet-mapping> <servlet-name>application</servlet-name> <url-pattern>/*</url-pattern></servlet-mapping><servlet-mapping> <servlet-name>application</servlet-name> <url-pattern>*.jsp</url-pattern></servlet-mapping>
您
DispatcherServlet名为的
application处理
*.jsp请求没有任何意义。默认情况下,Spring和您通过配置未提供JSP资源的处理程序。摆脱它
servlet-mapping。
然后你就剩下
<servlet-mapping> <servlet-name>application</servlet-name> <url-pattern>/*</url-pattern></servlet-mapping>
/*匹配所有内容的路径映射在哪里。这意味着,即使您删除了other
<servlet-mapping>,该映射仍将用于处理对以
.jsp(以其他方式结尾)任何路径的请求。这意味着,资源由您注册解决
InternalResourceViewResolver,那就是
/WEB-INF/views/home.jsp,还将由Spring的处理
DispatcherServlet。但是 同样 ,它没有这样的路径的处理程序。
相反,您需要让Servlet容器的JSP
Servlet处理请求。您可以通过映射
DispatcherServlet到
/
<servlet-mapping> <servlet-name>application</servlet-name> <url-pattern>/</url-pattern></servlet-mapping>
将其标记为默认servlet。默认的servlet将处理任何其他匹配的请求
<servlet-mapping>。大多数Servlet容器都有一个JSP
Servlet映射到
*.jsp,因此任何对带有扩展名的资源的请求
*.jsp都将由Spring处理,直到您的Spring
DispatcherServlet碰上它。



