虽然我真的无法想到这种情况的实际用例,但我纯粹希望这是一个好奇心驱动的问题。
我知道 servlet 容器保存着 servlet 创建的所有实例,并将请求线程委托给这些实例。对这些实例进行管理也是有意义的,以避免在容器权限之外进行无根据的调用来更改 servlet 实例的生命周期。
但真的没有办法访问 servlet 实例吗?
在 Servlet 2.1 之前(已经有十多年历史了),您可以使用ServletContext#getServlet() http://download.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getServlet%28java.lang.String%29为了这。然而从那时起它就被弃用了。很简单,因为它的设计很糟糕。如果您想从请求-响应链中的 servlet 内部调用另一个 servlet,只需使用RequestDispatcher#include() http://download.oracle.com/javaee/6/api/javax/servlet/RequestDispatcher.html#include%28javax.servlet.ServletRequest,%20javax.servlet.ServletResponse%29。如果您想调用另一个 servlet 的非 servlet 特定方法,那么现在就该将该代码重构为一个单独的 Java 类,然后您可以在这两个 servlet 中导入/使用该类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)