加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax – 会话管理在gwt

发布时间:2020-12-16 01:35:44 所属栏目:百科 来源:网络整理
导读:我正在使用GWT作为我的客户端应用程序.但是,我不知道如何处理会话管理. GWT应用程序位于一个页面上,所有服务器调用都通过 AJAX完成.如果会话在服务器上过期.我们假设用户没有关闭浏览器,并使用RPC向服务器发送一些请求,我的服务器如何通知应用程序会话已过期
我正在使用GWT作为我的客户端应用程序.但是,我不知道如何处理会话管理. GWT应用程序位于一个页面上,所有服务器调用都通过 AJAX完成.如果会话在服务器上过期.我们假设用户没有关闭浏览器,并使用RPC向服务器发送一些请求,我的服务器如何通知应用程序会话已过期,客户端部分应该再次显示登录屏幕?我的示例代码:
ContactDataServiceAsync contactDataService = GWT
                .create(ContactDataService.class);
        ((ServiceDefTarget) contactDataService).setServiceEntryPoint(GWT
                .getModuleBaseURL()
                + "contactDatas");

        contactDataService.getContact(2,new AsyncCallback<ContactData>() {
                    public void onFailure(Throwable caught) {
                                      //code to show error if problem in connection or redirect  to login page

                    }

                    public void onSuccess(ContactData result) {
                        displayContact(result);
                    }
                });

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

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

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

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

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

public void onFailure(Throwable e) {
                  if(e instanceof AuthenticationException) {
                        redirecttoLogin();
                  }
                  else {
                    showError(),}
            }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读