1

在我的 GWT 应用程序中,如果浏览器被用户关闭,我试图清除会话。

我正在做的是关闭处理程序调用使会话无效的 rpc,但 rpc 调用从未发生并且浏览器被关闭。如果有任何其他解决方案

  Window.addWindowClosingHandler(new ClosingHandler(){

        @Override
        public void onWindowClosing(ClosingEvent event) {

            signOut();
        }

        });

  public void signOut() {
    rpcService.signOut(new AsyncCallback<String>(){

        @Override
        public void onFailure(Throwable caught) {
        }

        @Override
        public void onSuccess(String result) {

            History.newItem("login");
        }});
}

   public String signOut(){
    session = request.getSession();
    session.invalidate();
    return "loggedout";

}
4

1 回答 1

0

它应该工作。尝试

Window.addCloseHandler(new CloseHandler<Window>() {
            @Override
            public void onClose(CloseEvent<Window> event) {

               }
        });

AFAIK 不要使用Window.addWindowClosingHandler,因为即使您关闭弹出窗口,它也会调用。浏览器关闭时调用的“Window.addCloseHandler”。

于 2013-05-29T06:52:48.843 回答