我们有一个不使用 Spring MVC 的现有应用程序。我们决定保持现有功能不变,并通过像“/admin/*.
所以这里是 web.xml 映射:
<servlet>
<servlet-name>springRouted</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/mvc-config.xml</param-value>
</init-param>
<load-on-startup>4</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springRouted</servlet-name>
<url-pattern>/admin/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ExistingServlet</servlet-name>
<url-pattern>existing.do</url-pattern>
</servlet-mapping>
在 ExistingServlet 中,有一个对 request.getRequestDispatcher().forward("/admin/...jsp") 的调用,Spring 会以某种方式检测到这种转发并报告一个错误,即无法找到“/admin/ 的映射” ...jsp”。似乎调用 request.getRequestDispatcher().forward("/admin/...jsp") 将使 servlet 容器重新检查 web.xml 并通过 Spring 的 DispatchServlet 重新路由。是真的吗?我以为这种内部转发不会被Spring的DispatchServlet拦截