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