第二十章 CSP Session 管理 - 状态管理
状态管理
因为 HTTP 是无状态协议。为 Web 编写的应用程序必须使用特殊技术来管理应用程序上下文或状态。 CSP 提供了许多用于状态管理的机制。这些中的每一个都可能适用于特定情况。
请求之间的跟踪数据
应用程序中状态管理的基本问题是跟踪连续 请求之间的信息。有许多可用的技术,包括:
- 使用隐藏的表单字段或
URL参数在单个页面上存储数据 - 将数据存储在客户端的
cookie中 - 将数据存储在服务器上的对象中的
%CSP.Session中 - 在 数据库中存储数据
在页面中存储数据
要将状态信息存储在页面中,必须放置它以便来自该页面的后续请求包含该信息。
如果页面通过超链接发出请求,则数据应放置在超链接的 中。例如,这是一个包含在 文件中定义的状态信息的超链接:
当 为包含此链接的页面提供服务时,表达式 #(data)# 将替换为发送给客户端的文本中的服务器变量 的值。当用户选择这个指向 的链接时, 服务器可以通过 对象访问 的值。如果需要, 可以对此类数据进行编码。
如果页面包含表单,可以将状态信息放置在隐藏字段中:
与超链接示例一样,当将此表单发送到客户端时,表达式 将替换为变量 的值。当用户提交此表单时,可以通过 对象获得 的值。
.png)


