Session持久化

Session持久化可以實現當tomcat重新啓動後,當前IE使用的session仍然有效而不用重新登錄,有兩步需要做
 1.配置conf/server.xml
在server.xml的根路徑或虛擬目錄中增加一段,如虛擬目錄調度所中:
<Context path="/dds" docBase="D:\01_XZY\98_供電局調度所\02_JSP\HRDGDZC\ROOT" debug="0" reloadable="true" >
<Manager className="org.apache.catalina.session.PersistentManager" debug="0" saveOnRestart="true"  maxActiveSessions="-1" minIdleSwap="-1" maxIdleSwap="-1" maxIdleBackup="-1" >
<Store className="org.apache.catalina.session.FileStore" directory="seskep"/>
</Manager>
</Context>
這樣之後,普通的session對象(像字符串類的)就能實現持久化了,但如果session使用了對象,則必須實現對象類的可序列化
參數說明:saveOnRestart-服務器關閉時,是否將所有的session保存到文件中;
maxActiveSessions-可處於活動狀態的session數;
minIdleSwap/maxIdleSwap-session處於不活動狀態最短/長時間(s),sesson對象轉移到File Store中;
maxIdleBackup-超過這一時間,將session備份。(-1表示沒有限制)
directory="seskep"  會在tomcat的work目錄下建立一個目錄,用來存儲session,這裏建立的目錄是
D:\JAVA\TOMCAT4\work\Standalone\localhost\dds\seskep


&#61656; 2.類的序列化
如果session中存儲了類xzy登錄屬性的實例,則類xzy登錄屬性必須能夠序列化,才能實現session持久化
實現implements java.io.Serializable接口就可以了
/**
 * 用戶登錄後各種屬性記錄在本類的實例中
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: 山西泰森科技股份有限公司</p>
 * @author 邢志雲
 * @version 1.0
 */
public class xzy登錄屬性 implements java.io.Serializable 
{
  public String UserName=null;
  public String 姓名=null;
  public String 單位=null;
  public String 部門=null;
  public String 職務=null;
  public String 權限設置=null;
  static final public long serialVersionUID=372938;
}
serialVersionUID這個東西估計每個類中寫個不同的數值就可以了,好像是版本保持的.
經過測試IE登錄後頁面後,Session再重新啓動,刷新IE頁面的時候session對象中的值能夠像重啓前一樣的讀出來.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章