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
我正在尝试将旧的遗留应用程序从 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