虽然我无法真正想到这种场景的实际用例,但我纯粹打算将其作为一个好奇心驱动的问题.
我理解servlet容器保存在servlet创建的所有实例上,并将请求线程委托给这些实例.保持这些实例的管理也是有意义的,以避免不必要的调用来改变容器范围之外的servlet实例的生命周期.
但是真的没有办法访问servlet实例吗?
在Servlet 2.1之前(已经有十多年了),你可以使用ServletContext#getServlet()它.然而,从那以后它被弃用了.仅仅因为它是一个糟糕的设计.如果要从请求 - 响应链中的servlet内部调用另一个servlet,只需使用RequestDispatcher#include().如果要调用另一个servlet的非servlet特定方法,那么现在只需将该代码重构为一个单独的Java类,然后可以在两个servlet中导入/使用它.
| 归档时间: |
|
| 查看次数: |
5554 次 |
| 最近记录: |