Java 在构建/运行时为scalatra/jetty定义主servlet

Java 在构建/运行时为scalatra/jetty定义主servlet,java,scala,servlets,scalatra,Java,Scala,Servlets,Scalatra,我有一个内嵌Jetty的scalatra服务器,下面列出了这两个服务器的初始化代码,其中HelloServlet是要加载的主servlet 有没有办法在构建或运行时设置这个servlet? 我不喜欢使用XMLs进行配置,因为我希望这些方法在那里添加其他挂钩,除非两者都可以使用 码头启动 Scalatra启动 是否要在系统启动时指定上下文根?i、 e.当服务器运行正常时,您不希望以编程方式更改它。换句话说,我不想硬编码。从配置文件读取还是从系统属性获取? public class ExampleS

我有一个内嵌Jetty的scalatra服务器,下面列出了这两个服务器的初始化代码,其中HelloServlet是要加载的主servlet

有没有办法在构建或运行时设置这个servlet? 我不喜欢使用XMLs进行配置,因为我希望这些方法在那里添加其他挂钩,除非两者都可以使用

码头启动

Scalatra启动


是否要在系统启动时指定上下文根?i、 e.当服务器运行正常时,您不希望以编程方式更改它。换句话说,我不想硬编码。从配置文件读取还是从系统属性获取?
public class ExampleServer {

    public static void main(String[] args) throws Exception {
        Server server = new Server();
        ServerConnector connector = new ServerConnector(server);
        connector.setPort(8080);
        server.setConnectors(new Connector[] { connector });
        ServletContextHandler context = new ServletContextHandler();
        context.setContextPath("/hello");
        context.addServlet(HelloServlet.class, "/"); // Can this be defined later??
        HandlerCollection handlers = new HandlerCollection();
        handlers.setHandlers(new Handler[] { context, new DefaultHandler() });
        server.setHandler(handlers);
        server.start();
        server.join();
    }
}
class ScalatraBootstrap extends LifeCycle {
  override def init(context: ServletContext) {
    context.mount(new HelloServlet, "/*") // Can this be defined later??
  }
}