包裝你的Session,使Session對象化
在Web開發中,經常需要使用Session來保存特定用戶的信息,在我們的程序中很多地方散落著類似下面的語句:
我們知道,Session中存放的是鍵值對,鍵是string類型的,如果我們一不小心把上面的語句寫成這樣:

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();
}
}
{
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();
ArrayList picList = sessionHelper.PicList;
//


sessionHelper.ClearAllPics();
引入這一層包裝,可以使我們的程序的可讀性、可維護性更好,而且將原來的一些運行期的錯誤提前到了編譯期,這也是強類型帶來的好處。
posted on 2008-01-11 09:36 靈! 閱讀(284) 評論(0) 編輯 收藏 所屬分類: Java技術-基礎語法 、Java技術-Session