我正在尝试理解Jetty。
请告诉我:
何时最好使用Servlets和何时使用Handlers?
是否可以将Connectors与Servlets一起使用,以实现“每个请求一个线程模型”?
我正在尝试理解Jetty。
请告诉我:
何时最好使用Servlets和何时使用Handlers?
是否可以将Connectors与Servlets一起使用,以实现“每个请求一个线程模型”?
ServletHandler
,允许Jetty(大多数情况下)支持servlets。Servlet是一种可移植的Java EE概念,因此如果在Jetty中使用servlets,可以更加便携地设计应用程序。另一方面,它们可能会带来一些开销,因此您可能需要直接实现一个处理程序来处理通过Connector发送的请求。当我使用它时,发现了一个有趣的观察。我有一个基于Jetty的应用程序(dropwizard.io),在这里我计划在实际处理程序之后添加处理程序(这是特殊用例)。
server.start()
使用org.eclipse.jetty.servlet.ServletContextHandler.insertHandler(HandlerWrapper handler)
,如果服务器已经启动,则会抛出illegalStateException: STARTED
异常。原因如下:
public void setHandler(Handler handler) {
if (isStarted())
throw new IllegalStateException(STARTED);
//..
org.eclipse.jetty.servlet.ServletContextHandler.addServlet(ServletHolder servlet,String pathSpec)
的情况下,它将把你的servlet
添加到现有的servlet集合中,一切都会正常工作。