如何从另一个servlet访问在一个servlet中创建的对象

时间:2011-03-11 07:26:14

标签: java web-applications object servlets

我有问题。假设有2个servlet:Load()和Process()。在Load()期间,我想创建并初始化一些对象。在Process()期间,我想将这些对象用于其他一些事情。

由于servlet中没有主类(与桌面编程相反),我认为我不能返回Load()创建的对象,并将其作为参数传递给主类的Process()。 / p>

那么,如何在一个servlet调用期间创建一个对象并使用/访问来自其他servlet的那个对象?

2 个答案:

答案 0 :(得分:2)

使用ServletContextgetServletContext().setAttribute(..)

另外,考虑将初始化代码和处理代码放在一个servlet中。如果你只在其中一个中有init(),而在另一个中只有doGet(),并且这些对象只能在这两个servlet之间共享,那么就没有这种分离的意义了。

更新:如果你想在同一个用户的连续请求中重用对象(即不初始化它们并在任何地方使用它们),而不是将它们放在ServletContext中,将它们放在较小的范围内 - HttpSession(由request.getSession()获得)

答案 1 :(得分:0)

不确定我理解你对Load()和Process()的意思。 Servlet没有功能。它们被映射到某个URL,并且它们的service()功能被servlet容器调用。可以将多个servlet映射到URL,并按照web.xml中定义的顺序调用它们。

回答您的问题:状态通过setAttribute()

正常存储在Session对象中

您可以通过getAttribute()在其他Servlet中访问它。

相关问题