问题很简单,但我已经有点挣扎了。
Server server = new Server(8080);
Context context = new Context(server, "/", Context.NO_SESSIONS);
context.addServlet(MainPageView.class, "/");
context.addServlet(UserView.class, "/signup");
server.start();
这是一个非常标准的代码片段,你可以在Jetty世界的任何地方找到它。我有一个应用程序将Jetty作为servlet引擎嵌入并有一些servlet。
其中一些servlet的实例化需要在启动时进行繁重的工作。说 - 阅读其他配置文件,连接到数据库等。如何让servlet引擎急切地实例化所有servlet,以便我可以提前完成所有的艰苦工作而不是第一个用户请求?
答案 0 :(得分:2)
我不确定为什么使用Guice make Justin的选项不适合你。注入的究竟是什么?我不确定这对你是否会有所帮助,因为它与Justin上面写的很相似,但如果你这样做,Jetty会做实际的实例化。
Context context = new Context(server, "/", Context.NO_SESSIONS);
ServletHolder mainPageViewHolder = new ServletHolder(MainPageView.class);
// Do this to force Jetty to instantiate the servlet
mainPageViewHolder.getServlet();
context.addServlet(mainPageViewHolder, "/");
答案 1 :(得分:0)
使用Context.addServlet
的{{1}}重载。 ServletHolder
是一个接受Class或Servlet实例的类。
ServletHolder
这假设Jetty 6.我认为它也适用于Jetty 7.