Java wicket是否执行会话序列化?

Java wicket是否执行会话序列化?,java,session,servlets,serialization,wicket,Java,Session,Servlets,Serialization,Wicket,假设有一个自定义会话类,它是从org.apache.wicket.authoroles.authentication.AuthenticatedWebSession中扩展而来的。从技术上讲,AuthenticatedWebSession实现了Serializableinterface 但这是否意味着wicket实际执行会话序列化(可能在磁盘中)?或者,servlet容器有责任在内存不足的情况下实现这种会话序列化?Wicket只序列化页面及其组件。它不会序列化会话 下面是一些关于Wicket的事实

假设有一个自定义会话类,它是从
org.apache.wicket.authoroles.authentication.AuthenticatedWebSession
中扩展而来的。从技术上讲,
AuthenticatedWebSession
实现了
Serializable
interface


但这是否意味着wicket实际执行会话序列化(可能在磁盘中)?或者,servlet容器有责任在内存不足的情况下实现这种会话序列化?

Wicket只序列化页面及其组件。它不会序列化会话

下面是一些关于Wicket的事实,很容易理解:

  • 几乎所有Wicket类都是可序列化的
  • Wicket允许集群,因此它需要可序列化的会话(在这种情况下,可以使用servlet容器共享,例如Tomcat集群中的Tomcat共享会话)
  • Wicket在需要存储有状态页面时绑定Servlet会话
  • 默认情况下,Wicket使用基于用于页面的标准Java序列化的序列化程序。WicketStuff项目中有基于Kryo和Fast Serialize的序列化程序
  • Wicket使用SessionStore,它是一个特殊的对象,负责将Wicket的会话存储到http会话中或从http会话中恢复。默认实现是HttpSessionStore,但您可以实现自己的(实现ISessionStore接口并将其添加到应用程序单例中)
  • 有状态Wicket组件可以在单个请求中存活下来,因此可以将它们序列化并存储在某个位置(磁盘上或通过网络在服务器之间共享)

Wicket仅序列化包含其组件的页面。它不会序列化会话

下面是一些关于Wicket的事实,很容易理解:

  • 几乎所有Wicket类都是可序列化的
  • Wicket允许集群,因此它需要可序列化的会话(在这种情况下,可以使用servlet容器共享,例如Tomcat集群中的Tomcat共享会话)
  • Wicket在需要存储有状态页面时绑定Servlet会话
  • 默认情况下,Wicket使用基于用于页面的标准Java序列化的序列化程序。WicketStuff项目中有基于Kryo和Fast Serialize的序列化程序
  • Wicket使用SessionStore,它是一个特殊的对象,负责将Wicket的会话存储到http会话中或从http会话中恢复。默认实现是HttpSessionStore,但您可以实现自己的(实现ISessionStore接口并将其添加到应用程序单例中)
  • 有状态Wicket组件可以在单个请求中存活下来,因此可以将它们序列化并存储在某个位置(磁盘上或通过网络在服务器之间共享)

Wicket会话对象作为属性存储在HttpSession中。 复制http会话是web容器的工作,因此将会话及其所有属性序列化是其工作


Wicket将序列化会话仅当会话作为任何应用程序组件中的非瞬态引用保留时。应用程序开发人员可以使用来防止此类错误。

Wicket会话对象作为属性存储在HttpSession中。 复制http会话是web容器的工作,因此将会话及其所有属性序列化是其工作


Wicket将序列化会话仅当会话作为任何应用程序组件中的非瞬态引用保留时。应用程序开发人员可以使用来防止此类错误。

我已经对您的答案做了一些更正。请让我知道,如果你不同意其中任何一个,我们将讨论。非常感谢。我对你的回答作了一些更正。请让我知道,如果你不同意其中任何一个,我们将讨论。非常感谢。