我可以在客户端存储配置参数吗?我没有可能在Servlet init参数(web.xml)中存储参数(因为我必须使用PHP)。那么如何在客户端存储init应用程序参数(例如PHP脚本位置,一些密码等)?
答案 0 :(得分:4)
为此,您有以下选择:
Configuration
类。我建议你选择第三种选择。
答案 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输出中。