在Web应用程序中,我们经常遇到跨越多个页面的表单提交过程,例如:在第一种形式中,我们捕获基本信息,下一页捕获一些其他信息,等等。我有一个场景,我有7个屏幕来捕获有关用户的所有细节,“提交”按钮出现在第7页。
通常我们将所有中间值存储在HttpSession中,当它提交时我们从Session中检索所有值并在数据库中创建一个条目。
使用这种方法,当用户完成所有表单条目(即从第1页到第7页)时,所有内容都驻留在会话中。
我想知道,除了HttpSession存在中间值之外还有其他选择吗?
我实际上是想找到让HttpSession不那么笨重的方法。
答案 0 :(得分:2)
您还可以在会话中仅存储引用,然后映射到缓存,例如Memcached。或者,如果在用户完成这些步骤时不丢失数据很重要,您还可以将数据保存在数据库中,并通过会话中的密钥引用它。在会话中存储太多数据有时不是最好的选择,所以我只会在那里存储一个引用。
答案 1 :(得分:1)
您可以尝试.Net的 caching 技术,这可能对所有数据使用会话非常有用,您也可以使用会话的ID作为缓存ID
我认为存储的第二个选项是 configuring your Session-State mode to use SQLServer mode 。