gpt4 book ai didi

html - 在嵌入式 Jetty 上使用 DefaultServlet 提供静态 html 文件

转载 作者:可可西里 更新时间:2023-11-01 13:14:29 26 4
gpt4 key购买 nike

我正在从事一个需要自包含的项目,因此我决定将 Jetty 嵌入到我的应用程序中。我将提供静态 HTML 页面、一些 JSP 页面,并且还将使用一些自定义 servlet。我找到了一个完美的例子,说明如何设置嵌入式 Jetty 来完成所有这些 (http://thinking.awirtz.com/2011/11/03/embedded-jetty-servlets-and-jsp/),但是,由于这是我第一次使用 Jetty 和 JSP 页面或 servlet,我有几个基本问​​题。

这是代码(在上面的链接中找到):

class RunServer {
public static void main(String args[]) {

System.out.println("Initializing server...");
final ServletContextHandler context =
new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
context.setResourceBase("webapp");

context.setClassLoader(
Thread.currentThread().getContextClassLoader()
);

context.addServlet(DefaultServlet.class, "/");

final ServletHolder jsp =
context.addServlet(JspServlet.class, "*.jsp");
jsp.setInitParameter("classpath", context.getClassPath());

// add your own additional servlets like this:
// context.addServlet(JSONServlet.class, "/json");

final Server server = new Server(8080);
server.setHandler(context);

System.out.println("Starting server...");
try {
server.start();
} catch(Exception e) {
System.out.println("Failed to start server!");
return;
}

System.out.println("Server running...");
while(true) {
try {
server.join();
} catch(InterruptedException e) {
System.out.println("Server interrupted!");
}
}
}
}

我添加了一个额外的自定义 servlet,并且运行良好,但是,我在静态内容(即 HTML 文件)方面遇到了问题。尝试访问它们时,我不断收到“找不到文件”错误。我很确定那是因为我不是 100% 确定应该将 HTML 文件放在哪里。我假设“context.setResourceBase("webapp");”这一行是告诉各种 servlet 在哪里查找文件(即:资源)的行,但是,我不确定“webapp”实际指向什么。它是文件夹、类名还是实际文件?

我非常感谢任何有关“webapp”实际是什么(或指向)以及将我的静态文件放在我的项目中的什么位置的帮助。

谢谢,哈利

最佳答案

webapp 是您应该创建和放置静态文件的目录。:) 如果您有一个 Maven 项目,它将位于项目根目录中的“src/main/webapp”。

希望对您有所帮助。

干杯,托马斯

关于html - 在嵌入式 Jetty 上使用 DefaultServlet 提供静态 html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13022024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com