1

我正在使用 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);还是不打电话?

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

问候。

4

2 回答 2

4

我是否需要调用 httpSession.setAttribute("data", sessionData); 或不,

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

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

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

于 2013-07-03T17:53:52.013 回答
0

Java 通过值传递一切。因此,您不需要这样做。对象引用按值传递。

于 2013-07-03T17:54:27.463 回答