我正在尝试使用嵌入式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/