【发布时间】:2018-10-08 13:50:54
【问题描述】:
我正在研究一个使用 Jetty 的应用程序,它有很多不同的相关对象:
service = new Server(Integer.valueOf(System.getenv("PORT")));
final ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
MyAppServlet myAppServlet = new MyAppServlet();
ServletHolder myAppServletServletHolder = new ServletHolder(myAppServlet);
final String serviceName = 'abc';
servletContextHandler.addServlet(myAppServletServletHolder, ("/"+ serviceName));
service.setHandler(servletContextHandler);
所以看起来层次结构是:
Server
ServletContextHandler
ServletHolder
Servlet
Server的含义很明显,Servlet似乎就是实现实际应用的脚本。
但是 ServletContextHandler 的含义不太清楚。你能给出一个简单的解释吗,不需要太多的 Java 生态系统背景,只有一般的编程经验?是为了在不同的应用程序(servlet)之间共享配置变量吗?有什么有用的应用?
最后,我知道为什么我们需要一个 ServletHolder 而不是仅仅将 Servlet 提供给 ServletContextHandler。
以下内容有点相关,但我认为不是很密切。它与这个问题只有一个类重叠:What's the difference between a ServletHandler and a ServletContextHandler in Jetty?
【问题讨论】: