在GWT中存储配置参数的位置?

时间:2012-01-21 16:59:19

标签: java gwt configuration

我可以在客户端存储配置参数吗?我没有可能在Servlet init参数(web.xml)中存储参数(因为我必须使用PHP)。那么如何在客户端存储init应用程序参数(例如PHP脚本位置,一些密码等)?

5 个答案:

答案 0 :(得分:4)

为此,您有以下选择:

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

答案 1 :(得分:3)

您可能会非常高兴使用GWT中的Dictionary和Cookie类。

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

的javascript对象

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

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

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

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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

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

答案 4 :(得分:0)

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

相关问题