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

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

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

    9910

    單飛

       :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
    參考
    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() {


    /**
         * 客戶端在超時后執(zhí)行跳轉(zhuǎn)登錄
         *
         * @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) {
                                // 超時后執(zhí)行跳轉(zhuǎn)到登錄窗口
                                displaySessionTimedOut();
                            } else {
                                sessionTimeoutTimer.cancel();
                                initSessionTimers();
                            }
                        }

                        public void onFailure(final Throwable caught) {
                            SC.say(LdapI18N.ldapMessages().failed());
                        }
                    });
                }
            };
            // 31 minutes 服務(wù)器端設(shè)置為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 單飛 閱讀(700) 評論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲精品亚洲人成在线观看| 日韩特黄特色大片免费视频| 亚洲日韩精品A∨片无码| 在线看片人成视频免费无遮挡| 成人免费视频小说| 亚洲午夜国产精品| 成人免费黄色网址| 亚洲午夜国产精品无卡| 97人伦色伦成人免费视频| 亚洲最大的黄色网| 黄页网站在线视频免费| 黄页免费在线观看| 国产AV无码专区亚洲Av| 暖暖在线视频免费视频| 免费永久国产在线视频| 亚洲AV无码一区二区二三区入口| 亚洲人配人种jizz| 妞干网手机免费视频| 老司机免费午夜精品视频| 亚洲国产精品尤物yw在线| 亚洲一卡2卡3卡4卡乱码 在线 | 亚洲熟妇自偷自拍另欧美| 在线免费视频一区二区| 黄色网址免费在线| 久久夜色精品国产亚洲av| 毛片在线播放免费观看| 亚洲人成影院午夜网站| 国产视频精品免费| 羞羞视频免费网站在线看| 亚洲自偷自拍另类12p| 免费无码又黄又爽又刺激| 国产亚洲精品精品精品| 毛片a级三毛片免费播放| 精品国产_亚洲人成在线| 亚洲自偷自偷图片| 免费大片黄在线观看yw| 真人无码作爱免费视频| 久久亚洲精品成人综合| 日韩中文无码有码免费视频| 两性色午夜视频免费播放| 亚洲午夜激情视频|