我正在做一个java ee web应用程序(有3层:web,ejb,持久性db)。我想保存一些对象,但仅限于会话时间(不在db中保存)。我怎样才能做到这一点?我应该在托管bean中保存对象(pojos)吗?像这样每个用户都有自己的保存对象。
谢谢你们
答案 0 :(得分:1)
在http会话期间,您有几种方法可以将一些特定于用户的信息存储在内存中。
会话上下文在同一HTTP会话中发生的所有servlet请求之间共享。在调用所有HttpSessionListener之后,当调用了invalidate()的任何请求结束时,在调用了所有过滤器和ServletRequestListener后,HTTPSession超时时会破坏会话上下文。
这样每个用户都可以将自己的数据集存储在会话范围的bean中。
直接访问HttpSession 并在那里存储用户特定数据。
FacesContext facesContext = FacesContext.getCurrentInstance(); HttpSession session =(HttpSession)facesContext.getExternalContext()。getSession(false); ... session.setAttribute(key,value); ... session.setAttribute(键);