我正在处理一个需要自包含的项目,所以我决定将Jetty嵌入我的应用程序中。 我将提供静态HTML页面,一些JSP页面,并且还将使用一些自定义servlet。 我已经找到了一个完美的示例来设置嵌入式Jetty以完成所有这些工作(http://thinking.awirtz.com/2011/11/03/embedded-jetty-servlets-and-jsp/)。 但是,由于这是我第一次使用Jetty并使用JSP页面或servlet,我有一些基本问题。
以下是代码(如上面链接所述):
我已经添加了一个自定义的Servlet,并且使其正常工作,但是我在静态内容(即:HTML文件)方面遇到了问题。当我尝试访问它们时,我不断收到“文件未找到”的错误。我相信这是因为我不确定应该将HTML文件放在哪里。我假设" context.setResourceBase("webapp"); "这行指示各种servlet在哪里查找文件(即:资源),但我不知道"webapp"实际上指向什么。它是一个文件夹、一个类名还是一个实际的文件?
如果您能告诉我"webapp"实际上指向什么(或者指向哪里)以及在我的项目中放置静态文件,请不吝赐教。
谢谢, Harry
以下是代码(如上面链接所述):
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文件)方面遇到了问题。当我尝试访问它们时,我不断收到“文件未找到”的错误。我相信这是因为我不确定应该将HTML文件放在哪里。我假设" context.setResourceBase("webapp"); "这行指示各种servlet在哪里查找文件(即:资源),但我不知道"webapp"实际上指向什么。它是一个文件夹、一个类名还是一个实际的文件?
如果您能告诉我"webapp"实际上指向什么(或者指向哪里)以及在我的项目中放置静态文件,请不吝赐教。
谢谢, Harry