2

我试图了解 wicket 的应用程序是如何工作的,我对 Web 应用程序设计和 Wicket 比较陌生。

当 wicket 部署到服务器并启动时,服务器会为每个用户提供一个会话。那么服务器会话和检票口的会话有什么区别呢?那么访问 Web 应用程序的每个用户是否所有用户都共享存储在 Web 应用程序中的相同数据,直到您使用 wicket 的会话?所以我的意思是假设我有一个用 6 个字符串硬编码的列表,用户 A 转到应用程序的 URL 并查看这六个字符串并决定将一个字符串添加到列表中,所以现在有 7 个字符串。用户 B 转到应用程序 URL,他会看到 7 个字符串还是 6 个字符串?

什么时候有理由使用检票口的会话?

谢谢!

4

1 回答 1

7

来自 Apache 网站的引用:

在 Wicket 中,所有服务器端状态都是自动管理的。您永远不会直接使用 HttpSession 对象或类似的包装器来存储状态。 相反,状态与组件相关联。每个服务器端页面组件都包含有状态组件的嵌套层次结构,其中每个组件的模型最终都是一个 POJO(Plain Old Java Object)。Wicket 在每个用户的会话中维护这些页面的地图。此页面映射(以及每个页面上的组件层次结构)的一个目的是允许框架隐藏有关如何访问组件和模型的所有详细信息。您处理简单、熟悉的 Java 对象,而 Wicket 处理诸如 URL、会话 ID 和 GET/POST 请求之类的事情。

总而言之,Wicket 对象和 Wicket 会话将它们的数据存储在一个专门的数据结构中,该数据结构使用常规会话来序列化自己。Wicket 使用会话的方式抽象了旧方法,以便从服务器端有状态的 UI 对象以及持久数据中受益。

编辑:将两者混合或编写自己的抽象代码将与发明 Wicket 已经重新发明的轮子相同。

于 2013-09-26T02:58:20.413 回答