我經常聽到有人說會話範圍對象應該執行Serializable
?爲什麼是這樣?如果不這樣做,結果會是什麼?爲什麼不把它作爲servlet規範的一部分呢?我知道如果我們不這樣做,Tomcat不會抱怨。其他應用程序服務器如JBoss,WebSphere或Weblogic呢?爲什麼認爲會話範圍對象可序列化是一種很好的做法?
2
A
回答
7
這允許servlet容器到任何一個 會話的內容存儲在磁盤上,或者以會話內容在網絡上傳輸到 另一個服務器。
爲什麼容器需要將會話存儲在磁盤上(鈍化)?也許當內存已滿時。當再次需要會話時,它會從磁盤檢索回到內存(激活)。
2
它允許容器通過網絡移動會話對象或將它們存儲在磁盤上。當您將應用程序與運行在不同物理盒子中的服務器的不同節點集羣時,這將會很有幫助
相關問題
- 1. 在會話中保存對象是否是一種很好的做法?
- 2. 鎖定可變對象 - 爲什麼它被認爲是不好的做法?
- 3. 爲什麼我會序列化一個對象而不是做文件輸出?
- 4. 直接JSON.stringify Javascript對象是一種很好的做法嗎?
- 5. 你會認爲什麼做法是「pythonic」?
- 6. JavaScript:window.spam是一種很好的做法嗎?
- 7. 認爲是好的做法?
- 8. Javascript爲什麼FOR IN是一種不好的做法?
- 9. 將變量設置爲「Nothing」是一種很好的做法?
- 10. 您是否認爲ASP.NET WebForms是一種不好的做法?
- 11. 在網址中顯示會話ID是否是一種很好的做法?
- 12. 爲什麼不是每種類型的對象都可序列化?
- 13. 爲什麼$在cakePHP中被認爲是不好的做法?
- 14. 爲什麼把magic_quotes_gpc視爲一種不好的做法?
- 15. 爲什麼CLR對象類型是可序列化的?
- 16. 將數據反序列化爲模擬對象的好方法是什麼?
- 17. 爲什麼PostgreSQL可序列化事務認爲這是衝突?
- 18. 爲什麼是一種「不穩定的那種」認爲是不好的
- 19. 序列化會話對象
- 20. 序列化,在序列化對象中有很多方法是不好的
- 21. 抽象類是一種很好的做法?
- 22. 在會話中傳遞序列化對象和非序列化對象之間有什麼好處?
- 23. ViewModel對象持有Dispatcher被認爲是不好的做法嗎?
- 24. 使用可變子域名是一種很好的做法嗎?
- 25. 在MySQL中將某些字段/列的默認值設置爲NULL是否是一種很好的做法?
- 26. 將canvas設爲JavaScript中的全局對象是否是一種好的做法?
- 27. 什麼是一些很好的替代序列化格式?
- 28. 什麼是使一個類不可序列化的好方法?
- 29. 會話範圍的bean不是一個會話範圍的bean
- 30. 爲什麼ASP.NET viewstate會丟失序列化對象的身份?
爲什麼不是servlet規範的一部分呢?因爲如果我們不嚴格遵循這個規則,在負載平衡器的情況下如何進行故障轉移? – Geek
沒有該servlet規範不會強制它。有一些敏感信息,你不希望讓他們序列化。諸如銀行賬號,祕密等等。爲了後面的目的,字段可以被標記爲短暫的。 –
當您的容器嘗試序列化未實現Serializable的對象時,會發生'NotSerializableException'。 –