我正在使用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);
,应该我(仍然)是否这样做?
据我所知,对象是通过引用传递的,但我不知道细节,我宁愿在第一次尝试中做到这一点。
问候。
答案 0 :(得分:4)
我是否需要调用httpSession.setAttribute(“data”,sessionData);或不,
不,你不需要这样做。 sessionData
是存储在Session对象中的引用的副本。因此,无论您使用此引用对对象所做的任何更改,都将反映在Session中存储的引用。
据我所知,对象是通过引用传递的
不,Java中没有任何内容通过引用传递。一切都是通过价值传递的。在您的情况下,它是通过值传递的引用。
答案 1 :(得分:0)
Java按值传递所有内容。因此,您不需要这样做。对象引用按值传递。