【问题标题】:Store java objects in HTML5 local storage在 HTML5 本地存储中存储 java 对象
【发布时间】:2011-08-21 11:57:34
【问题描述】:

我想将从以前的 JSP 中的 request.getAttribute() 获得的对象存储在 HTML5 本地存储中,以便我可以在另一个页面中使用它,因为我不想使用服务器会话来存储属性。如何做到这一点?我要存储的对象中有 5 个带有 getter 和 setter 的字符串。

【问题讨论】:

    标签: jsp html local-storage


    【解决方案1】:

    您可以通过 JavaScript 使用 localStorage setItem 和 getItem 来实现此目的。

    将request paramter 添加到 HTML5 本地存储。

    <script type="text/javascript">
        localStorage.setItem('user','${param.user}'); //Where param user is your request parameter from previous jsp.
    </script>
    

    现在获取你存储到本地存储的值

    <script type="text/javascript">
        localStorage.getItem('user');
    </script>
    

    注意:这仅适用于支持 localStorage 的浏览器。

    查看html5/webstorage 了解更多信息。

    更新: 上面的示例使用字符串存储在 localStorage 中。为了实现作为对象的存储,这将需要一些转换或使用混合可用的工具。就像 Java 对象到 json 到 javascript 到 localstorage 或 json 到本地存储。我尚未对此进行测试,但下面的一些链接可能有助于做到这一点

    注意:这不可能是在 localStorage 中存储 Java 对象的确切方法,或者无论如何也不可能。但我认为可以使用上述一些技术将 Java 对象存储在 localStorage 中。要在 localStorage 中获取对象,我认为您需要一个代码来解析服务器端(Java)上的对象。

    【讨论】:

    • 你不能通过 JavaScript 存储 Java 对象!
    • @Hache:你说得有道理,我更新了我的帖子。我想还有一种方法可以将 Java 对象存储到 localStorage 中。无论如何感谢您的指出。
    • @Hache:这绝对是可能的。它们只会被转换为字符串。因此,如果它们已经是 String,您有合适的转换器将它们取回,那么就没有问题。
    • 如果我谈论对象,我指的是带有方法等的真实对象,而不仅仅是数据,因为他在谈论 getter&setter,他接缝的意思是。当然可以序列化对象并在以后反序列化它们。 ace pointet out 的可能性仅适用于简单数据类型,不适用于复杂对象
    猜你喜欢
    • 2011-08-05
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    相关资源
    最近更新 更多