【发布时间】:2020-02-26 02:52:53
【问题描述】:
我一直在研究 Quarkus 以及如何在保持现有 JSP 基础的同时将其用于新开发。
此时将我们所有的 JSP 重写为 servlet 和 html 文件是不合理的。这是我们最终可以为之奋斗的目标,但目前还不行。所以,我一直在尝试配置 Quarkus,以便能够为我的 JSP 文件提供服务。
现在需要注意的是,我们的 JSP 非常古老,并且是由基本上不了解 JSP 技术的人编写的。它们大多是 scriplet 代码,几乎没有围绕 scriplet 的 html。
所以我从使用引导方法的标准 Quarkus“入门”application 开始。那工作得很好。所以我然后添加了一个新文件到
resources->META-INF->resources 命名为 test.jsp。这是一个非常基础的文件,没有添加任何特殊内容。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Test JSP</title>
</head>
<body>
</body>
</html>
我使用应用程序根文件夹中的mvnw compile quarkus:dev 启动应用程序。一切都运行了,我可以在 localhost:8080 访问默认的 index.html。但是,当我尝试加载 JSP 文件 localhost:8080/test.jsp 时,浏览器想要下载该文件。
进一步研究,我发现并在application.properties文件中添加了一些设置(https://quarkus.io/guides/http-reference)
quarkus.http.root-path=/
quarkus.servlet.context-path=/resources
但后来我只能通过 localhost:8080/test/ 进入 html 页面,但浏览器仍然想下载 JSP 文件。
我尝试的最后一件事是配置一个 undertow 服务器,以 forecube/undertow-jsp-sample 为例。不幸的是,使用 Quarkus 启动开发服务器的方式,主类没有加载,所以 undertow 容器没有启动。
我问了这么多问题,是否可以使用 Quarkus 提供 JSP 文件?如果是这样,那我错过了什么?
【问题讨论】:
-
Quarkus 目前不支持 JSP,请参阅:github.com/quarkusio/quarkus/issues/5082
-
支持Qute,类似的模板引擎:quarkus.io/guides/qute