spring-boot-2,在没有控制器的情况下提供普通的旧 jsp 页面?

spring-boot-2, Serving plain old jsp pages WITHOUT controller?

我正在尝试将旧的遗留应用程序从 JavaEE 转换为 spring-boot-2。

您实际上如何在没有控制器的情况下提供普通的旧 JSP 页面?

我一直在谷歌上一遍又一遍地搜索这个,虽然听起来很奇怪,但我无法弄清楚或找到一个实际有效的简单示例。尝试访问 JSP.

时,我一直收到“404 Not Found”

我正在使用 maven,打包为 WAR 文件,我很好 运行 它作为 'exploded'(这似乎是最好的选择?),仍然没有能够让它发挥作用。

我不明白这怎么会这么难,在 spring-boot-2 中是否不再可能执行此操作?

任何人都可以给我指出一个有效的例子吗?详细说明如何?

编辑:这就是 spring 文档所说的内容。 JSP限制:

“使用 Jetty 和 Tomcat,如果您使用 war 包装,它 应该可以工作 。” 来自:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/

但是 如何?这就是我想要弄清楚的...

您是否在某处声明了 servlet 映射? 我相信你需要一个入口点,否则只是一个指向任何地方的死文件

问题是 Spring 默认情况下引导接管了整个世界,即它将 DispatcherServlet 注册到 / 的 servlet 映射,从而 high-jacking servlet *.jsp 个文件的容器处理。

要让 servlet 容器正常处理 JSPs,我们需要确保 Spring DispatcherServlet 不会拦截它们,例如通过确保它只处理带有特定后缀或特定前缀的请求。

例如如果没有 JSP 路径以 /api/ 开头,那么我们可以将其用于 DispatcherServlet,即任何对 /api/* 的请求都将由 Spring 引导处理,并且任何其他请求将由 servlet 容器处理。

为此,将以下内容添加到 application.properties 文件中:

spring.mvc.servlet.path = /api