簡體   English   中英

將不可序列化的對象存儲為 HttpSession 屬性是否好?

[英]is it good to store a non-serializable object as an HttpSession attribute?

我正在使用強化 Web 應用程序,它指出了以下代碼的問題,因為方法addToSession()將不可序列化的對象存儲為HttpSession屬性,這可能會損害應用程序的可靠性。

public class DataGlob {
   String globName;
   String globValue;

   public void addToSession(HttpSession session) {
     session.setAttribute("glob", this);
   }
}

它建議我執行以下操作。

public class DataGlob implements java.io.Serializable {
   String globName;
   String globValue;

   public void addToSession(HttpSession session) {
     session.setAttribute("glob", this);
   }
}

我是否需要按照它向我推薦的方式更改代碼,還是無需更改就可以?

建議存儲在會話中的所有屬性都是可序列化的。 它不是必需的,但將來可能會有用。

為了支持故障轉移,應用程序服務器可以將會話數據保存在磁盤上或通過網絡傳輸,以便集群中的另一個節點可以繼續為會話提供服務。 為了支持這一點,會話中存儲的所有數據都需要可序列化。

HttpSession內容應該是可序列化的,以使容器能夠將會話存儲到磁盤或將會話傳輸到集群中的另一個節點。
所以最好讓你的類 Serializable 避免以后的序列化問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM