Quarkus 如何提供 JSP 个文件
Quarkus How to Serve JSP Files
我一直在研究 Quarkus 以及如何在保持现有 JSP 基础的同时将其用于新开发。
将我们所有的 JSP 重写为 servlet 和 html 文件在这一点上是不合理的。那是我们最终可以争取的东西,但现在还没有。因此,我一直在尝试以能够为我的 JSP 文件提供服务的方式配置 Quarkus。
现在需要注意的是,我们的 JSP 非常古老,由基本上不了解 JSP 技术的人编写。它们大多是脚本代码,脚本周围几乎没有 html。
所以我开始使用标准的 Quarkus "getting-started" application 使用 bootstrap 方法。那工作得很好。所以我然后添加了一个新文件
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 启动开发服务器的方式,main class 没有加载,所以 undertow 容器没有启动。
我仔细阅读了所有内容,想问一下,是否可以使用 Quarkus 提供 JSP 文件?如果是这样,那我错过了什么?
Quarkus 不支持 JSP,我不希望他们会增加对它的支持。无论如何,您可以将 Struts 2 与 Freemarker 一起使用
https://github.com/apache/struts-examples/tree/master/quarkus
你可以用
Qute模板引擎
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-qute</artifactId>
</dependency>
Quarkus + Qute + RDBMS:
https://github.com/knowledgefactory4u/Quarkus/tree/main/quarkus-qute-crud
Quarkus + Qute + MongoDB: https://github.com/knowledgefactory4u/Quarkus/tree/main/quarkus-qute-mongodb-crud
或
Freemarker 模板引擎
<dependency>
<groupId>io.quarkiverse.freemarker</groupId>
<artifactId>quarkus-freemarker</artifactId>
<version>0.2.7</version>
</dependency>
Quarkus + Freemarker 增删改查:https://github.com/knowledgefactory4u/Quarkus/tree/main/quarkus-freemarker-crud
我一直在研究 Quarkus 以及如何在保持现有 JSP 基础的同时将其用于新开发。
将我们所有的 JSP 重写为 servlet 和 html 文件在这一点上是不合理的。那是我们最终可以争取的东西,但现在还没有。因此,我一直在尝试以能够为我的 JSP 文件提供服务的方式配置 Quarkus。
现在需要注意的是,我们的 JSP 非常古老,由基本上不了解 JSP 技术的人编写。它们大多是脚本代码,脚本周围几乎没有 html。
所以我开始使用标准的 Quarkus "getting-started" application 使用 bootstrap 方法。那工作得很好。所以我然后添加了一个新文件
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 启动开发服务器的方式,main class 没有加载,所以 undertow 容器没有启动。
我仔细阅读了所有内容,想问一下,是否可以使用 Quarkus 提供 JSP 文件?如果是这样,那我错过了什么?
Quarkus 不支持 JSP,我不希望他们会增加对它的支持。无论如何,您可以将 Struts 2 与 Freemarker 一起使用 https://github.com/apache/struts-examples/tree/master/quarkus
你可以用
Qute模板引擎
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-qute</artifactId>
</dependency>
Quarkus + Qute + RDBMS: https://github.com/knowledgefactory4u/Quarkus/tree/main/quarkus-qute-crud
Quarkus + Qute + MongoDB: https://github.com/knowledgefactory4u/Quarkus/tree/main/quarkus-qute-mongodb-crud
或
Freemarker 模板引擎
<dependency>
<groupId>io.quarkiverse.freemarker</groupId>
<artifactId>quarkus-freemarker</artifactId>
<version>0.2.7</version>
</dependency>
Quarkus + Freemarker 增删改查:https://github.com/knowledgefactory4u/Quarkus/tree/main/quarkus-freemarker-crud