使用 Java Spark 如何发送 html 文件作为响应
With Java Spark how do I send a html file as a repsonse
如何使用 spark return 现有页面
我有一个示例,我只是 return 一些文本
import static spark.Spark.*;
public class HelloWorld {
public static void main(String[] args) {
get("/hello", (req, res) -> "Hello World");
}
}
我改成了
import spark.Service;
import static spark.Spark.*;
public class HelloWorld {
public static void main(String[] args) {
staticFiles.externalLocation("C:\HtmlFolder\"); // Static files
init();
get("/hello", (req, res) -> "Report00001.html");
}
}
我希望它显示 HtmlFolder\Report00001.hml 的内容,但它只显示 Report0001.html
我看不到任何示例说明如何执行此操作
因此,如果我在 C:\HtmlFolder\ 中放置一个 index.html,那么当在 http://localhost:4567/ 处打开浏览器时它现在会显示,但我看不到如何为获取请求进行映射以显示其他文件
好像
get("/hello", (req, res) -> "Report00001.html");
returns 单个字符串。如果该字符串应该是一个文件 - 您可能必须 打开 文件,收集其内容,然后 return 该内容作为字符串。
我想 C:\HtmlFolder\
不在你的类路径中。
要提供外部资源(在类路径之外),您需要使用 staticFiles.externalLocation() + System.getProperty()
示例:
staticFiles.externalLocation(System.getProperty("myDir"));
如果您需要了解更多信息,请勾选 Spark Static Files Documenation。
已编辑:
如上所述配置外部位置,然后在您的 get 中执行类似
的操作
get("/hello", (req, res) -> {res.redirect("/Report00001.html");});
(我现在不确定应该是"/Report00001.html"
还是"Report00001.html"
)
静态内容只能使用您在原始问题中提到的实际文件的 URL 来提供。如果要将此静态文件映射到特定端点,则需要以编程方式读取文件内容和 return 字符串。
另一种方法是实现您自己的模板引擎,该引擎仅 return 包含 HTML 文件的内容,尽管这可能有点矫枉过正,但应该足够简单。
如何使用 spark return 现有页面
我有一个示例,我只是 return 一些文本
import static spark.Spark.*;
public class HelloWorld {
public static void main(String[] args) {
get("/hello", (req, res) -> "Hello World");
}
}
我改成了
import spark.Service;
import static spark.Spark.*;
public class HelloWorld {
public static void main(String[] args) {
staticFiles.externalLocation("C:\HtmlFolder\"); // Static files
init();
get("/hello", (req, res) -> "Report00001.html");
}
}
我希望它显示 HtmlFolder\Report00001.hml 的内容,但它只显示 Report0001.html
我看不到任何示例说明如何执行此操作
因此,如果我在 C:\HtmlFolder\ 中放置一个 index.html,那么当在 http://localhost:4567/ 处打开浏览器时它现在会显示,但我看不到如何为获取请求进行映射以显示其他文件
好像
get("/hello", (req, res) -> "Report00001.html");
returns 单个字符串。如果该字符串应该是一个文件 - 您可能必须 打开 文件,收集其内容,然后 return 该内容作为字符串。
我想 C:\HtmlFolder\
不在你的类路径中。
要提供外部资源(在类路径之外),您需要使用 staticFiles.externalLocation() + System.getProperty()
示例:
staticFiles.externalLocation(System.getProperty("myDir"));
如果您需要了解更多信息,请勾选 Spark Static Files Documenation。
已编辑:
如上所述配置外部位置,然后在您的 get 中执行类似
的操作get("/hello", (req, res) -> {res.redirect("/Report00001.html");});
(我现在不确定应该是"/Report00001.html"
还是"Report00001.html"
)
静态内容只能使用您在原始问题中提到的实际文件的 URL 来提供。如果要将此静态文件映射到特定端点,则需要以编程方式读取文件内容和 return 字符串。
另一种方法是实现您自己的模板引擎,该引擎仅 return 包含 HTML 文件的内容,尽管这可能有点矫枉过正,但应该足够简单。