Jetty中的ServletHandler和ServletContextHandler有什么区别?

ela*_*anh 7 java servlets jetty embedded-jetty

我正在尝试使用嵌入式Jetty服务器.我只想根据请求路径将请求映射到不同的servlet.

创建ServletHandler和添加servlet与创建和添加servlet相比有什么区别ServletContextHandler

例如:

//how is this different...
ServletHandler handler = new ServletHandler();
handler.addServletWithMapping(MyServlet.class, "/path");

//from this?
ServletContextHandler contextHandler = new ServletContextHandler();
contextHandler.addServlet(MyServlet.class, "/path");
Run Code Online (Sandbox Code Playgroud)

Joa*_*elt 8

大多数Servlet需要一个javax.servlet.ServletContext对象才能正常运行.

使用a ServletContextHandler将为其中的所有Servlet,过滤器,会话,安全性等创建和管理公共ServletContext ServletContextHandler.这包括正确的初始化,加载顺序和受a影响的组件的破坏ServletContext.

还要注意,这ServletHandler被认为是一个内部类,ServletContextHandler并不打算像Jetty那样"在原始"中使用.虽然它在技术上是可行的,但是对于除Servlet的最天真和简单的实现之外的所有实现都是不鼓励的.