我是 J(2)EE 和 Web 应用程序开发领域的新手,但我很快就在它周围导航并学到了很多东西。每一天对我来说都是一次奇妙的新发现之旅。
我目前正在做一个项目,我在 Glassfish v2 上使用 Visual JSF Woodstock。我对 JSF 也很陌生。
有时我需要在请求之间保存一些对象(例如 MyObject)。从我到目前为止所阅读和理解的内容来看,我需要使用会话在不同请求之间保存这些对象。到现在为止还挺好。
究竟如何做到这一点是我关心的地方。我知道在 JSP 中,您可以使用session.setAttribute("myObj", myObject)
cookie 或 url 重写或隐藏表单变量将对象保存在客户端。
另一方面,在 JSF 中,我使用 Session 范围的 bean,例如 SessionBean1,并将对象保存为 SessionBean1 属性(例如SessionBean1.setSomeOjb(myObj)
)。这是解决这个问题的正确方法吗?
我猜测这样做会导致服务器端的内存利用率增加,因为每个请求都会创建会话范围 bean 的新实例 SessionBean1 以及 SessionBean1 中保存的 myObject 实例使用的内存。
我读过你可以使用FacesContext.getExternalContext().getSession/getSessionMap()
它将在客户端保存会话变量。
那么您建议我使用哪种方法 - 会话范围的 bean 或 sessionmap 来保存对象以便在会话请求之间进行访问?
谢谢。