2013-07-03 51 views
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);與否,和應該我(還)做或不做?

據我所知,對象是通過引用傳遞的,但我不知道細節,我寧願在第一次嘗試中做對。

問候。

+1

不,你不需要那樣做。 'sessionData'是一個參考。 – crush

+0

你不需要它,但是如果你不小心你正在做什麼,這是相當危險的...... – fge

+0

@fge你的意思是他應該關心併發性? – crush

回答

4

我是否需要調用httpSession.setAttribute(「data」,sessionData);或不,

不,你不需要這樣做。 sessionData是存儲在Session對象中的引用的副本。因此,無論您使用此引用對該對象所做的更改,都會反映在Session中存儲的引用中。

據我瞭解對象是通過引用

沒有,沒有什麼Java是通過引用傳遞傳來傳去。一切都通過價值傳遞。就你而言,它是通過價值傳遞的參考。

0

Java按價值傳遞一切。因此你不需要那樣做。對象引用是按值傳遞的。