使用web.xml以编程方式启动jetty

use*_*273 13 java eclipse jetty

我创建了一个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();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我看到的大多数教程都有一个web.xml来配置servlet等.我找不到编程方法来完成其中的一些工作.我可以创建一个web.xml并仍然以编程方式启动我的jetty并以某种方式使用该web.xml进行配置吗?

更具体地说,我需要在web.xml中写入true.我没有找到任何方式以编程方式进行.

Ser*_*lov 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();
Run Code Online (Sandbox Code Playgroud)

关于以编程方式配置,您可以尝试使用Servlet 3.xAPI Jetty 8.x(当前Jetty版本9.x)支持,并且可以通过编程方式完全配置.