<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)航:
     
    主站蜘蛛池模板: 亚洲最大的黄色网| 亚洲午夜无码AV毛片久久| 亚洲精品日韩专区silk| 国产免费爽爽视频在线观看| 国产亚洲美女精品久久久| aa在线免费观看| 久久青青成人亚洲精品| 99精品视频在线观看免费播放| 亚洲视频在线观看| 亚洲免费观看在线视频| 爽爽爽爽爽爽爽成人免费观看| 国产精品亚洲产品一区二区三区 | 国产免费131美女视频| 色天使色婷婷在线影院亚洲| 国产在线19禁免费观看| 无套内谢孕妇毛片免费看看| 亚洲国产精品成人| 免费无码av片在线观看| 亚洲视频在线免费观看| 国产乱码免费卡1卡二卡3卡| 亚洲日韩精品国产3区| 免费在线精品视频| 在线毛片片免费观看| 亚洲国产精品人久久电影| 四虎成人免费大片在线| sss在线观看免费高清| 亚洲一本综合久久| 在线观看视频免费完整版| 在线观看亚洲视频| 亚洲成AV人在线播放无码| 中文字幕无码视频手机免费看| 亚洲国产精品无码观看久久| 亚洲综合久久夜AV | 91九色老熟女免费资源站| 苍井空亚洲精品AA片在线播放 | 亚洲自国产拍揄拍| 久久久久亚洲AV成人网人人软件| 99在线视频免费| 噜噜噜亚洲色成人网站| 久久精品视频亚洲| 国产高清免费的视频|