我创建了一个eclipse maven项目并添加了jetty依赖项。接下来,我创建了一个简单的servlet和一个启动jetty服务器的类。这是我到目前为止所得到的:
package com.example.jetty;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
public class App {
public static void main(String[] args) throws Exception {
Server server = new Server(80);
ServletContextHandler servletContext = new ServletContextHandler(server, "/");
servletContext.addServlet(MyServlet.class, "/");
server.start();
}
}
我的问题是,我看到的大多数教程都有一个web.xml来配置servlet等。我无法找到编程方法来完成其中的一些工作。我可以创建一个web.xml并仍然以编程方式启动我的jetty并以某种方式使用该web.xml进行配置吗?
更具体地说,我需要在web.xml中写入true。我没有找到任何方法以编程方式进行。
答案 0 :(得分:7)
我将从您可能感兴趣的示例开始。如果您想使用web.xml
编程方式Jetty
服务器,那么您可以执行以下操作:
WebAppContext context = new WebAppContext();
context.setContextPath("/myWebApp");
context.setExtractWAR(false);
context.setDescriptor("/file/system/path/to/your/wab/app/WEB-INF/web.xml");
context.setResourceBase("/file/system/path/to/your/wab/app");
context.setConfigurationDiscovered(false);
HandlerList handlerList=new HandlerList();
handlerList.addHandler(webAppContext);
Server server = new Server(threadPool);
server.setHandler(handlerList);
server.start();
关于以编程方式配置,您可以尝试使用Servlet 3.x
(当前Jetty 8.x
版本Jetty
)支持的9.x
API,并且可以通过编程方式完全配置。