Java 是否可以在浏览器中存储变量(最好是字符串)';使用GWT的s缓存?
我一遍又一遍地搜索Google,但我找不到任何关于在缓存中存储变量的信息。我所看到的与这件事有关的任何事情看起来都非常复杂,没有得到很好的解释。我正在使用GWT设计一个非常简单的登录系统,它使用一个文本文件编辑用户行,根据用户分别登录还是注销,添加true或falseJava 是否可以在浏览器中存储变量(最好是字符串)';使用GWT的s缓存?,java,caching,gwt,global-variables,Java,Caching,Gwt,Global Variables,我一遍又一遍地搜索Google,但我找不到任何关于在缓存中存储变量的信息。我所看到的与这件事有关的任何事情看起来都非常复杂,没有得到很好的解释。我正在使用GWT设计一个非常简单的登录系统,它使用一个文本文件编辑用户行,根据用户分别登录还是注销,添加true或false 问题是,当用户刷新窗口时,他们没有注销(因为我不希望他们注销),但应用程序丢失了当前用户变量,因此看起来他们已注销。我想缓存当前用户的用户名,直到他们注销,以便允许用户刷新/关闭选项卡并仍然登录。我正在寻找一个相当深入的解释,因为
问题是,当用户刷新窗口时,他们没有注销(因为我不希望他们注销),但应用程序丢失了当前用户变量,因此看起来他们已注销。我想缓存当前用户的用户名,直到他们注销,以便允许用户刷新/关闭选项卡并仍然登录。我正在寻找一个相当深入的解释,因为我以前很少/没有缓存方面的经验!如果这个问题看起来很愚蠢或者无法解决,请告诉我 GWT不提供任何在浏览器中存储值的选项,但您可以使用“cookie”在浏览器中存储数据。GWT将帮助您在浏览器上创建和维护cookie。如果您计划在浏览器上存储更多数据,请使用HTML5功能
也是在浏览器上存储数据的选项您可以将数据存储在用户会话中,并通过RCP从服务器onModuleLoad()获取数据(或在需要时获取数据)。从安全角度来看,在客户端上存储登录状态是一个坏主意,因为他可以将其更改为“已登录”。设置Cookies比这里描述的要简单得多!我给你举个例子:
//set a cookie
final TextBox t1 = new TextBox();
RootPanel.get().add(t1);
final TextBox t2 = new TextBox();
RootPanel.get().add(t2);
Button b1 = new Button("safe cookie");
b1.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// a cookie which expires after one week
Date now = new Date();
long nowLong = now.getTime();
nowLong = nowLong + (1000 * 60 * 60 * 24 * 7);// seven days
now.setTime(nowLong);
Cookies.setCookie(t1.getText(), t2.getText(), now);
//if the time isn't set it expires after the tab closes
}
});
RootPanel.get().add(b1);
//get a cookie
final TextBox t3 = new TextBox();
RootPanel.get().add(t3);
Button b2 = new Button("get cookie by name");
b2.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.alert(Cookies.getCookie(t3.getText()));
}
});
RootPanel.get().add(b2);
资料来源:,HTML5是我能找到的最好、最简单的解决方案 我使用了可以在Eclipse中找到的GWT存储API,它非常简单。如果其他人想做类似的事情,我在提供的链接中解释了一切。,所以我不认为这是一个非常令人信服的选择。最好看看Cookie或Web存储。