如何在Java Servlets之间维护状态?

bn.*_*bn. 4 java servlets web-applications

情况

我有一些单一责任的Servlet接受请求,完成工作,响应并完成 - 在这些情况下不需要维护状态.

但是,我有"普通的旧Java对象",它根据用户在客户端上启动的操作维护状态信息,我希望根据请求提供给我的Servlet.我想使这个对象的单个实例可用,并且不需要/想要维护多个共享实例.

旁注:这些数据是暂时的(可能需要保留10分钟),而不是我想保留在数据库中的东西.

我之前使用JSP维护了一个对象的共享实例,但在这种情况下,Servlet更有意义.所以,我的问题是如何适当地管理这个维护状态的对象的生命周期,并且可以通过HTTP请求或其他一些机制在无状态Servlet之间共享它?

换句话说,如果这是一个非Web应用程序,无国籍的Servlet将对象我会委派任务和状态的对象将保持的结果.

我已经研究过ServletContext,但是我并不完全理解这个目的,知道这是否是我需要的.

Pat*_*sen 13

也许我理解你的问题是错的,但你有没有想过会议?

[编辑]所以你真的需要会议.

您可以这样使用会话:

public class TestServlet extends HttpServlet {
....
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws  ServletException, IOException {
    request.getSession().setAttribute("test", new Date());
  }
....
}
Run Code Online (Sandbox Code Playgroud)

您存储在那里的对象需要是可序列化的IIRC.

如果你使用eclipse或netbeans,代码洞察功能和javadoc应该引导你如何使用它来获得更高级的东西.

  • +1 HttpSession确实是这个问题中描述的内容. (3认同)
  • 对于你认为是一个技巧问题的简单回答+1 (3认同)
  • +1:是的,这听起来像一个技巧问题,但会议也是我在阅读问题时想到的. (3认同)