【问题标题】:manage form data with cookies and servlets使用 cookie 和 servlet 管理表单数据
【发布时间】:2011-04-04 15:36:50
【问题描述】:

我一直在检查有关 cookie 数据持久性和检索的信息。似乎 cookie 只能管理键值对,我想存储表单中的数据(如姓名、描述、年龄、号码、性别等)。这可能吗?我看到了一些使用 javascript 的示例,但我不太确定。

我使用的是 spring mvc 2.5,它允许我访问 HttpSeesion、HttpServletRequest 和 HttpServletResponse。

我已经完成了一些检索和存储值的练习。

我想尝试这种方式,因为此时来自表单的数据由会话处理。并不总是清理会话。

【问题讨论】:

    标签: servlets cookies spring-mvc


    【解决方案1】:

    在 cookie 中存储大量数据和/或用户敏感数据是一种糟糕的做法。 Cookie 完全公开,并且它们对可用存储空间有很大的限制。

    而是自动生成一个长的、唯一的、几乎不可能暴力破解的 ID(java.util.UUID 对此很有帮助),将其存储在 cookie 中。最后,将此 ID 用作 Map 或存储数据的服务器端的 SQL 数据库中的键。这样您就可以将所需数据与 cookie 中的 ID 相关联。


    更新 根据 cmets,您担心的是服务器内存使用情况(我最初理解是会话生命周期太短)。答案的第一段仍然有效:你真的不想那样做。这是一个安全漏洞,cookie 空间非常有限。

    至于实际问题:只需为您的服务器提供更多内存,或将其配置为将会话存储在磁盘上,或者只是手动将数据沿会话范围内的键存储在数据库中。

    【讨论】:

    • 好的,我想我并没有明白你的意思是要长篇大论。我遇到的问题很简单,我的应用程序具有捕获表单以允许用户保存数据,例如供应商名称和地址或带有描述和名称的项目等,某些过程需要很多屏幕,所以最后在我的控制器中我需要检索以前屏幕中的所有数据并将其保留。现在我使用 HttpSession 将所有数据保存在内存中,因此为了保留服务器内存,我想使用用户存储功能,并在流程结束时恢复所有数据并将其保存在我的数据库中。
    猜你喜欢
    • 2021-06-01
    • 2011-11-12
    • 1970-01-01
    • 2018-11-06
    • 2018-12-27
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 2020-11-03
    相关资源
    最近更新 更多