ajax – 会话管理在gwt

前端之家收集整理的这篇文章主要介绍了ajax – 会话管理在gwt前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用GWT作为我的客户端应用程序.但是,我不知道如何处理会话管理. GWT应用程序位于一个页面上,所有服务器调用都通过 AJAX完成.如果会话在服务器上过期.我们假设用户没有关闭浏览器,并使用RPC向服务器发送一些请求,我的服务器如何通知应用程序会话已过期,客户端部分应该再次显示登录屏幕?我的示例代码
  1. ContactDataServiceAsync contactDataService = GWT
  2. .create(ContactDataService.class);
  3. ((ServiceDefTarget) contactDataService).setServiceEntryPoint(GWT
  4. .getModuleBaseURL()
  5. + "contactDatas");
  6.  
  7. contactDataService.getContact(2,new AsyncCallback<ContactData>() {
  8. public void onFailure(Throwable caught) {
  9. //code to show error if problem in connection or redirect to login page
  10.  
  11. }
  12.  
  13. public void onSuccess(ContactData result) {
  14. displayContact(result);
  15. }
  16. });

如果会话到期,则必须显示登录屏幕,否则它会使用Window.alert()显示一些错误.

如何做到这一点,服务器端和客户端所需的代码是什么?

如果用户已经注销,您可以让服务器向客户端发出AuthenticationException.
这将被捕获在Failure方法的回调中,然后可以将用户重定向登录页面.

编辑:
当然,AuthenticationException不是一个标准的例外,我只是举个例子.最好坚持标准的例外.

如果您遇到特定异常,可以使用instanceof运算符

  1. public void onFailure(Throwable e) {
  2. if(e instanceof AuthenticationException) {
  3. redirecttoLogin();
  4. }
  5. else {
  6. showError(),}
  7. }

猜你在找的Ajax相关文章