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

创建ServletHandler和向其中添加servlet与创建ServletContextHandler和向其中添加servlet有什么区别?

例如:

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

//from this?
ServletContextHandler contextHandler = new ServletContextHandler();
contextHandler.addServlet(MyServlet.class, "/path");

最佳答案

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

使用ServletContextHandler将为该ServletContextHandler中的所有Servlet,过滤器, session ,安全性等创建和管理公共(public)ServletContext。这还包括正确的初始化,加载顺序以及受ServletContext影响的组件的销毁。

还要注意,ServletHandler被视为ServletContextHandler的内部类,并不像Jetty那样“原始”使用。尽管在技术上是可行的,但不建议使用Servlet,除非是最幼稚和最简单的实现。

关于java - Jetty中的ServletHandler和ServletContextHandler有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30733910/

10-10 12:51