【问题标题】:Where to store config parameters in GWT?在 GWT 中哪里存储配置参数?
【发布时间】:2012-01-21 16:59:19
【问题描述】:

我可以在客户端的哪里存储配置参数?我不可能将参数存储在 Servlet 初始化参数(web.xml)中(因为我必须使用 PHP)。那么如何在客户端存储初始化应用程序参数(例如 PHP 脚本位置、一些密码等)?

【问题讨论】:

    标签: java gwt configuration


    【解决方案1】:

    为此,您有以下选择:

    1. 在客户端代码中存储数据。 GWT 编译为 javascript,最简单的方法是创建一个带有硬编码值的 Configuration 类。
    2. 在浏览器中存储数据。您可以使用 cookie 或 HTML5 local storage
    3. 在服务器端存储数据并使用远程 RPC 检索它们。

    我建议你选择第三个选项。

    【讨论】:

    • 谢谢,但是一些文件呢,我可以在编译后更改 php 脚本位置的 URL?配置类的问题不好。为了从服务器检索信息,我的应用程序需要知道服务器 URL :) 我不想硬编码服务器 URL,我想将它排除到某个文件中,可以在 RUNTIME/ 读取
    • GWT 代码是 java 代码,需要编译,客户端没有属性文件。另一种方法是将信息存储在一些可以在运行时替换的 JS 文件中。
    【解决方案2】:

    您可能会很高兴在 GWT 中使用 Dictionary 和 Cookie 类。

    在您的 html 托管文件中,您维护一些声明为 var 的 javascript 对象。

    在模块加载时,调用 Dictionary 类来获取您定义的用于存储配置数据的 javascript 对象。

    通过这种方式,您可以拥有服务器端管理的用户或上下文敏感配置,因为我偶尔会使用 JSP 来生成托管文件。我可以将用户配置管理为存储在数据库中的服务器端 cookie。

    所以......今天是星期四......用户有每个星期四访问曼彻斯特联队网站的历史,等等,让我根据上下文/用户敏感算法为用户提供不同的配置。在周一早上,用户配置将包含 10 小时能量饮料的广告数据。

    通过这种方式,您的 gwt 客户端不必从服务器请求上下文相关的配置数据。

    当然,这不是存储密码等身份验证/安全数据的方法。我认为您甚至不应该考虑将身份验证/安全数据存储在客户端代码中。即使在 javascript 混淆之后,以这种方式存储此类数据也是对恶意意图持久性的公开邀请。如果需要客户端存储,此类数据最好由客户端 cookie 提供,使用 GWT 类 Cookies。

    【讨论】:

      【解决方案3】:

      在客户端存储密码?好的,如果你愿意。只需创建一个包含它们的类,可以是静态字段,也可以是具有所有参数的单例对象。甚至可能是entryPoint() 的那个。

      【讨论】:

        【解决方案4】:

        在客户端存储非常量参数(例如密码或任何用户数据)的标准、简单且简单的方法是 cookie。 见Cookies

        您可以存储在硬代码(某些类中的静态字段)或资源 .properties 文件中的常量参数(See GWT i18n constants interface)。

        PS:我不建议您在客户端“按原样”存储密码(这不安全),而是您可以存储密码哈希(例如 md5)。只需在服务器端计算密码哈希并将此哈希存储在 cookie 中。

        【讨论】:

          【解决方案5】:

          您可以使用MultiValuedConfigProperties(另请参阅this other helpful tutorial)来存储配置值。使用它们,您可以将配置存储在模块的 .gwt.xml 配置文件中。配置值将被编译到 JavaScript 输出中。

          【讨论】:

            猜你喜欢
            • 2018-02-28
            • 2012-07-28
            • 1970-01-01
            • 1970-01-01
            • 2011-01-08
            • 2013-09-06
            • 2021-10-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多