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

标签 java servlets jetty embedded-jetty

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

相关文章:

java - 为什么 Hibernate 会为此 HQL 抛出 QuerySyntaxException?

JavaFx - 何时创建元素

java - NoClassDefFounderror 异常

java - JAVA中$1是什么意思?

java - 有没有办法在objectDB的资源管理器中删除表?

java - jquery 表单提交到 servlet

java - 使 session 无效后我的 session 未变为 Null

java - 如果作为 jar 启动,具有嵌入式 Jetty 的应用程序显示 "page not found"

java - 使用 SBT 的 Jetty 和 Scala 部署策略?

java - 从资源位置读取 jar 文件