假设有一个自定义会话类,它来自org.apache.wicket.authroles.authentication.AuthenticatedWebSession
。技术上AuthenticatedWebSession
实现Serializable
接口。
但这是否意味着wicket实际执行会话序列化(可能在磁盘中)?或者,当内存不足时,servlet容器有责任进行这样的会话序列化吗?
答案 0 :(得分:2)
Wicket仅对包含其组件的页面进行序列化。它没有序列化会话!
以下是关于Wicket的一些事实,这是很好理解的:
答案 1 :(得分:2)
Wicket Session对象作为属性存储在HttpSession中。 复制http会话是Web容器的工作,因此将Session的所有属性序列化是一项工作。
如果会话在任何应用程序组件中保留为非瞬态引用,则Wicket将序列化会话 。应用程序开发人员可以使用https://github.com/apache/wicket/blob/297c4e51a925ef08c3ff903e4db26d2f910fe084/wicket-core/src/main/java/org/apache/wicket/core/util/objects/checker/SessionChecker.java来防止此类错误。