有很多方法可以在struts2中獲取會話對象。哪一個是最好的,推薦的方法來從以下獲取會話對象?在struts2中獲得會話的最佳和推薦的方法?
- ActionContext的
- SessionAware
- 充分利用ServletRequestAware和請求對象會話後請求。
現在我正在使用ServletRequestAware獲取所有操作中的會話對象,即使不需要請求對象。
哪一個最好,爲什麼最好?
在此先感謝
有很多方法可以在struts2中獲取會話對象。哪一個是最好的,推薦的方法來從以下獲取會話對象?在struts2中獲得會話的最佳和推薦的方法?
現在我正在使用ServletRequestAware獲取所有操作中的會話對象,即使不需要請求對象。
哪一個最好,爲什麼最好?
在此先感謝
實施SessionAware
是優選的,雖然你可以訪問你表示過其他方式的會話。
通過實施SessionAware
,您可以給struts2一個將會話屬性(這是地圖)注入到動作中的機會。這使您的代碼不會耦合到底層的servlet上下文,並且使測試更容易,因爲您可以將任何地圖對象傳遞給具有所需屬性的動作。 對此會話映射所作的任何更改都將反映在真實的會話對象上。
同意doctrey。讓你的動作實現sessionaware,並創建會話變量(這是Map變量)。該變量可以像任何普通變量一樣對待。代碼看起來更整潔。
謝謝doctrey的有用的解釋..我可以從SessionAware的會話對象獲得** ServletContext **而不使用ServletRequestAware,因爲我需要獲得服務器的真實路徑? – developer
@yuvaraj不客氣。如果你需要訪問** servletContext **,只需實現'ServletContextAware'。 – doctrey
謝謝你的提示,doctrey – developer