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

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

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

    小方的Java博客

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      27 隨筆 :: 17 文章 :: 115 評論 :: 0 Trackbacks

    2008年12月5日 #

    我在做公司某個框架時有這么一個需求。每次調(diào)用dwr的方法前要檢查用戶是否已經(jīng)登錄,否則就不能執(zhí)行并且退到首頁。

    當(dāng)然了,做攔截器有很多方式,但經(jīng)過研究發(fā)現(xiàn)DWR自帶很多插件,其中就有一個調(diào)用處理的插件。具體做法如下。

    在web.xml里的DWR配置中加入一個參數(shù):
    <init-param>
                
    <param-name>
                    org.directwebremoting.extend.Remoter
                
    </param-name>
                
    <param-value>com.xxx.base.framework.web.MyDWRRemoter</param-value>
            
    </init-param>

    然后自己創(chuàng)建這個實現(xiàn)類。
    public class MyDWRRemoter extends DefaultRemoter
    {

        
    public Replies execute( Calls calls )
        
    {
            HttpSession session 
    = WebContextFactory.get().getSession();
            ISessionContainer sc 
    = ( ISessionContainer ) session.getAttribute( ISessionContainer.SESSION_CONTAINER_KEY );

            
    //session檢查
            if ( sc == null || sc.getUserInfo() == null )
            
    {
                logOut();
                
    return super.execute( new Calls() );
            }

            
    else
            
    {
                IUserInfo userInfo 
    = sc.getUserInfo();
                
    if(!SecurityFactory.getInstance().isOnline( userInfo.getUserID(), session.getId() ))
                
    {
                    logOut();
                    
    return super.execute( new Calls() );
                }

            }

            
    return super.execute( calls );
        }


        
    private void logOut()
        
    {
            WebContext wct 
    = WebContextFactory.get();
            Util utilThis 
    = new Util(wct.getScriptSession());
            utilThis.addScript( 
    new ScriptBuffer("logOut()"));
        }

    }

    其中,檢查用戶是否登錄,如果沒有登錄就返回一個空的super.execute( new Calls());, 不能返回null否則會報錯。
    檢查通過就調(diào)用super.execute( calls );  其實calls里還能獲得很多信息。

    最后大家注意logOut方法,這里用到了DWR2.0新功能:DWR反向調(diào)用,就是DWR調(diào)用javascript,具體用法大家網(wǎng)上可以查到,需要配置的,我這里就不多說了。補(bǔ)充一下,addScript調(diào)用的是html里的function logOut().

    這樣的話,如果用戶session超時,或被管理員踢掉,一旦他做任何dwr操作就會被強(qiáng)迫登出到首頁了。
    posted @ 2008-12-05 20:42 方佳瑋 閱讀(2902) | 評論 (3)編輯 收藏

    主站蜘蛛池模板: 最新亚洲人成无码网www电影| 久久亚洲精品无码| 亚洲精品无码久久久久YW| 免费人成在线观看播放国产| 亚洲色成人WWW永久在线观看| 亚洲人成电影网站免费| jiz zz在亚洲| 国产高清免费观看| 成人国产网站v片免费观看| 亚洲美女高清一区二区三区 | 国产免费啪嗒啪嗒视频看看| 亚洲精品亚洲人成在线| 免费高清在线爱做视频| 污网站在线观看免费| 五月婷婷在线免费观看| 99亚偷拍自图区亚洲| 免费jjzz在在线播放国产| 精品国产呦系列在线观看免费 | 中文字幕人成无码免费视频| 亚洲av无码专区在线观看下载| 国产成人免费a在线视频色戒| 国产精品亚洲五月天高清| 国产专区一va亚洲v天堂| 久久这里只精品99re免费| 亚洲国产情侣一区二区三区| 日韩免费无砖专区2020狼| 你懂的在线免费观看| 亚洲小说区图片区| 四虎在线播放免费永久视频| a级片免费在线播放| 亚洲精品天堂在线观看| 中文字幕亚洲电影| 青娱乐免费视频在线观看| 亚洲综合精品香蕉久久网97| 免费看国产成年无码AV片| 亚洲国产韩国一区二区| 国产成人精品免费视频软件| 久久精品免费观看国产| 久久精品国产亚洲av天美18| 国产AV无码专区亚洲Av| 免费看片免费播放|