我正在使用JSP / Java,但对以下代码有疑问:

HttpSession httpSession = (HttpSession)pageContext.getSession();
SessionData sessionData = (SessionData)httpSession.getAttribute("data");
sessionData.setAccountId(account.getAccountId());
sessionData.setUsername(account.getUsername());
sessionData.setLoggedIn(true);


我是否需要致电httpSession.setAttribute("data", sessionData);,是否(仍然)要致电?

据我了解,对象是通过引用传递的,但是我不知道细节,我宁愿在第一次尝试中就做得到。

问候。

最佳答案

我需要调用httpSession.setAttribute(“ data”,sessionData);吗?或不,


不,您不需要这样做。 sessionData是存储在Session对象中的引用的副本。因此,使用此引用对对象所做的任何更改都将反映为Session中存储的引用。


  据我了解,对象是通过引用传递的


不,Java中没有任何内容通过引用传递。一切都通过价值传递。在您的情况下,它是按值传递的引用。

10-06 07:04