<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    9910

    單飛

       :: 首頁 :: 聯系 :: 聚合  :: 管理
    參考
    http://gwt-ext.com/forum/viewtopic.php?t=1682


    import com.google.gwt.user.client.rpc.RemoteService;
    import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

    @RemoteServiceRelativePath("sessout")
    public interface MyService extends RemoteService {
        public Integer getUserSessionTimeoutMillis();
    }


    import com.google.gwt.user.client.rpc.AsyncCallback;

    public interface MyServiceAsync {
        void getUserSessionTimeoutMillis(AsyncCallback async);
    }



    import com.google.gwt.user.server.rpc.RemoteServiceServlet;

    @SuppressWarnings("serial")
    public class MyServiceImpl extends RemoteServiceServlet implements MyService {

        public Object getLoggedInUser() {
            return getThreadLocalRequest().getSession().getAttribute(EConstants.USER);
        }

        /**
         * Should be the first RPC call from all UIDef*.onModuleLoad()
         *
         * @return java.lang.Integer (-1 if the user session has already timed out,
         *         otherwise, the number of milliseconds)
         */
        public Integer getUserSessionTimeoutMillis() {
            Integer returnObj = null;
            if (getLoggedInUser() != null) {
                returnObj = new Integer(EduConstants.SESSION_TIMEOUT_MILLIS); // milliseconds
            } else {
                returnObj = new Integer(-1);
            }
            return returnObj;
        }
    }

    public class EConstants {

        public static final String USER = "sessuser";

        public static final int SESSION_TIMEOUT_MILLIS = 1800; // 30 minute
    }


    web.xml

      <servlet>
        <servlet-name>sessServlet</servlet-name>
        <servlet-class>com.chinaedu.edupass.server.MyServiceImpl</servlet-class>
      </servlet>
     
      <servlet-mapping>
        <servlet-name>sessServlet</servlet-name>
        <url-pattern>/ldapmanager/sessout</url-pattern>
      </servlet-mapping>


    public class LManager implements EntryPoint {


        private Timer sessionTimeoutTimer = null;
    private MyServiceAsync service;
    public void onModuleLoad() {

    service = (MyServiceAsync) GWT.create(MyService.class);

            showLogin();
    }

    private void showLogin() {
            final LoginDialog dialog = new LoginDialog() {
                protected void showMainView() {
                    super.showMainView();
                    doShowMainView();
                    // 登錄后開始計時
                    initSessionTimers();
                }

            };
            dialog.setAutoCenter(true);
            dialog.setIsModal(true);
            dialog.setShowHeader(false);
            dialog.setShowToolbar(false);
            dialog.setEdgeSize(10);
            dialog.setWidth(300);
            dialog.setHeight(180);

            dialog.show();
        }


        private void doShowMainView() {


    /**
         * 客戶端在超時后執行跳轉登錄
         *
         * @sessionTimeInMillis Integer
         */
        private void initSessionTimers() {
            // Allow 30 seconds to get the RPC call constructed and called.
            sessionTimeoutTimer = new Timer() {
                public void run() {
                    service.getUserSessionTimeoutMillis(new AsyncCallback() {
                        public void onSuccess(Object result) {
                            int sessionTimeMillis = ((Integer) result).intValue();
                            if (sessionTimeMillis == -1) {
                                // 超時后執行跳轉到登錄窗口
                                displaySessionTimedOut();
                            } else {
                                sessionTimeoutTimer.cancel();
                                initSessionTimers();
                            }
                        }

                        public void onFailure(final Throwable caught) {
                            SC.say(LdapI18N.ldapMessages().failed());
                        }
                    });
                }
            };
            // 31 minutes 服務器端設置為30分鐘超時,如果30分鐘沒有操作
            // 就會返回超時,如果期間有操作,則在等31分鐘后再輪詢
            sessionTimeoutTimer.schedule(31*60*1000);

        }

        private void displaySessionTimedOut() {
            SC.say(LI18N.ldapMessages().sessionTimeOut(), new BooleanCallback() {
                public void execute(Boolean value) {
                    showLogin();
                }
            });
        }
    posted on 2011-08-03 18:18 單飛 閱讀(698) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 成人性生交视频免费观看| 免费的全黄一级录像带| 在线观看免费a∨网站| 亚洲成a人片在线观看播放| 一级毛片免费播放| 亚洲色av性色在线观无码| 中文字幕免费在线观看| 亚洲首页在线观看| 欧美日韩国产免费一区二区三区| 激情内射亚洲一区二区三区爱妻| 大地资源免费更新在线播放| 国产午夜亚洲精品| 无码专区一va亚洲v专区在线| 国产人成网在线播放VA免费| 亚洲高清国产AV拍精品青青草原| 84pao强力永久免费高清| 亚洲中文字幕久久精品无码2021| 好吊妞998视频免费观看在线| 免费播放美女一级毛片| 91麻豆国产自产在线观看亚洲| 久久久精品午夜免费不卡| 亚洲视频网站在线观看| 毛片免费在线观看网站| 色爽黄1000部免费软件下载| 亚洲精品国偷自产在线| 成人黄色免费网站| 乱爱性全过程免费视频| 久久久久久亚洲Av无码精品专口| 野花高清在线观看免费3中文| 国产亚洲日韩在线a不卡| 亚洲A∨无码一区二区三区| 99久久免费精品国产72精品九九| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 免费的一级片网站| 黄色网页在线免费观看| 亚洲免费电影网站| 亚洲国产成人影院播放| 99久久99久久精品免费看蜜桃| 一级毛片高清免费播放| 亚洲欧洲在线播放| a级亚洲片精品久久久久久久|