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

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

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

    包裝你的Session,使Session對象化

     在Web開發中,經常需要使用Session來保存特定用戶的信息,在我們的程序中很多地方散落著類似下面的語句:
     int userAge = (int)this.Session["UserAge"];
        
        我們知道,Session中存放的是鍵值對,鍵是string類型的,如果我們一不小心把上面的語句寫成這樣:
      int userAge = (int)this.Session["UseAge"];
        編譯期不會發現這個錯誤,但運行時一定會拋出異常,這是在程序中直接操作Session可能引發的問題之一。另外,每次獲取userAge的時候都要寫代碼進行強制轉換,感覺很繁瑣。我們需要一個解決方案來解決這些問題。我的做法是引入一個Session的包裝,使之對象化、強類型化。就像接下來的例子一樣:
    public class SessionHelper
    {
        
    private HttpSessionState curSession;

        
    public SessionHelper(HttpSessionState session)
        {
            
    this.curSession = session;
        }

        
    public static SessionHelper CreateInstance(HttpSessionState session)
        {        
            
    return new SessionHelper(session);
        }


        
    public string UserID
        {
            
    get
            {
                
    return this.curSession["UserID"].ToString();
            }
            
    set
            {
                
    this.curSession["UserID"= value ;
            }
        }

        
    public int UserAge
        {
            
    get
            {
                
    return (int)this.curSession["UserAge"];
            }
            
    set
            {
                
    this.curSession["UserAge"= value ;
            }
        }

        
    //某用戶上傳的所有圖片
        public ArrayList PicList
        {
            
    get
            {
                
    if (this.curSession["PicList"== null)
                {
                    
    this.curSession["PicList"= new ArrayList();
                }

                
    return (ArraayList)this.curSession["PicList"];
            }       
        }

        
    //清空圖片列表
        public void ClearAllPics()
        {
            
    this.PicList.Clear();
        }  
    }

        這樣,我們用起來就非常方便了:
           SessionHelper sessionHelper = SessionHelper.CreateInstance(this.Session);
            ArrayList picList 
    = sessionHelper.PicList;
            
    //    處理picList中的圖片
            sessionHelper.ClearAllPics();  

        引入這一層包裝,可以使我們的程序的可讀性、可維護性更好,而且將原來的一些運行期的錯誤提前到了編譯期,這也是強類型帶來的好處。

    posted on 2008-01-11 09:36 靈! 閱讀(274) 評論(0)  編輯  收藏 所屬分類: Java技術-基礎語法Java技術-Session

    <2008年1月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    隨筆分類

    隨筆檔案

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 91在线视频免费看| 免费a级毛片在线观看| 亚洲13又紧又嫩又水多| 成人免费男女视频网站慢动作| 亚洲a∨国产av综合av下载| 国产亚洲?V无码?V男人的天堂| 57pao国产成视频免费播放| 亚洲免费网站观看视频| 亚洲国产精品VA在线观看麻豆 | 综合偷自拍亚洲乱中文字幕| 亚洲中文字幕伊人久久无码| 亚洲免费福利视频| 特级毛片全部免费播放a一级| 亚洲一卡2卡三卡4卡有限公司| 国产婷婷高清在线观看免费| 日本黄色动图免费在线观看| 亚洲成在人线在线播放无码| 久久国产精品亚洲综合 | 国产精品亚洲产品一区二区三区 | 国产片免费在线观看| 最近2019免费中文字幕6| 免费视频成人国产精品网站 | a毛片全部免费播放| 亚洲精品无码久久久久久| 亚洲AV第一页国产精品| 亚洲综合区小说区激情区| 在线免费观看中文字幕| 十八禁无码免费网站| jizz在线免费播放| 亚洲av午夜电影在线观看| 亚洲一级毛片免费观看| 亚洲AV综合色区无码一区爱AV| 免费理论片51人人看电影| 亚洲免费福利视频| 久久综合给合久久国产免费| 青青操免费在线观看| 亚洲黄片手机免费观看| 美女视频黄.免费网址| mm1313亚洲国产精品无码试看| 亚洲一卡2卡3卡4卡乱码 在线| 亚洲自偷自拍另类12p|