访问servlet实例

ani*_*van 8 java servlets

虽然我无法真正想到这种场景的实际用例,但我纯粹打算将其作为一个好奇心驱动的问题.

我理解servlet容器保存在servlet创建的所有实例上,并将请求线程委托给这些实例.保持这些实例的管理也是有意义的,以避免不必要的调用来改变容器范围之外的servlet实例的生命周期.

但是真的没有办法访问servlet实例吗?

Bal*_*usC 6

在Servlet 2.1之前(已经有十多年了),你可以使用ServletContext#getServlet()它.然而,从那以后它被弃用了.仅仅因为它是一个糟糕的设计.如果要从请求 - 响应链中的servlet内部调用另一个servlet,只需使用RequestDispatcher#include().如果要调用另一个servlet的非servlet特定方法,那么现在只需将该代码重构为一个单独的Java类,然后可以在两个servlet中导入/使用它.