我正在使用gwt 2.3和gwtp框架。在这个应用程序中,我想保持5分钟的会话时间。这意味着如果当前用户没有做5分钟,他在5分钟后来到他的第一个事件/屏幕上的动作他应该被注销。 在gwt中有一个名为Timer的类,可用于此问题。但我没有得到如何在屏幕上识别用户的动作。我确实在谷歌上,&发现gwt-ext.Below的代码是gwt-ext
的代码Ext.get(“pagePanel”).addListener(“click”, new EventCallback() {
@Override
public void execute(EventObject e) {
MessageBox.alert(“On Mouse Click”);
}
});
Ext.get(“pagePanel”).addListener(“keydown”, new EventCallback() {
@Override
public void execute(EventObject e) {
MessageBox.alert(“On Key Press Click”);
}
});
在上面的代码标签中正常工作,所以我附上了获取此代码的链接。here
我在gwt中查找相同类型的代码。如果还有其他更好的方法,请告诉我。提前致谢
答案 0 :(得分:3)
如果行动/事件真的可以实现,我会用
NativePreviewHandler
以下列方式解决它:
boolean expired;
final Timer logoutTimer = new Timer() {
@Override
public void run() {
expired = true;
}
};
NativePreviewHandler nph = new NativePreviewHandler() {
@Override
public void onPreviewNativeEvent(NativePreviewEvent event) {
if (!expired) {
logoutTimer.cancel();
logoutTimer.schedule(300000);
} else {
// do your logout stuff here
}
}
};
Event.addNativePreviewHandler(nph);
如果用户shell在5分钟后没有新操作就注销:
final Timer logoutTimer = new Timer() {
@Override
public void run() {
// do your logout stuff here
}
};
NativePreviewHandler nph = new NativePreviewHandler() {
@Override
public void onPreviewNativeEvent(NativePreviewEvent event) {
// Of course do this only when logged in:
logoutTimer.cancel();
logoutTimer.schedule(300000);
}
};
Event.addNativePreviewHandler(nph);