1. 程式人生 > >java-說說對javaee中的session的理解,你是怎麼用session的?

java-說說對javaee中的session的理解,你是怎麼用session的?

在伺服器上,通過Session來區分每一個上網的使用者

使用者只要一連線到伺服器,則立刻分配一個Session使用者

Session主要方法:

1、伺服器上通過Session來分別不同的使用者 → Session ID

任何連線到伺服器上的使用者,伺服器都會為之分配唯一的一個不會重複的Session ID,Session ID是有伺服器統一管理的,人為不能控制。

方法:session.getID();

長度:32

2、判斷是否是新的Session

public boolean isNew();

判斷當前的Session是否是新建立的Session。

3、Session的屬性設定

設定屬性:public void  setAttribute(String name,Object value)

獲得屬性:public Object getAttribute(String name)

刪除屬性:public void removeAttribute(String name)

4、登入驗證

通過Session能夠對使用者是否登入做出驗證

public void putValue(String name,Object)-->setAttribute public Object getValue(String name)-->getAttribute public removeValue(String name)-->removeAttribute 此三個方法已經過時,不建議再使用

登出使用者:讓使用者的Session失效

如果Session失效,則在Session所保留的全部操作也會消失

public void invalidate()是Session失效(手工)

如果Session長時間不被使用,則也會自動失效

5、得到Session的建立時間

public long getCreationTime()

此方法返回long型別,通過new Date()可以取得一個完成時間

獲得使用者最後操作的時間:public long getLastAccessedTime();

6、總結

Session將資訊儲存在伺服器上,而Cookie儲存在客戶端上

Session比Cookie更安全,Session比Cookie更佔資源

開發原則:Session要儘量少用,儘量少向Session中儲存資訊

session使用了Cookie的機制,如果Cookie被禁用,則Session也無法使用,因為客戶端的session ID以Cookie的形式,儲存在了客戶端的記憶體當中,這個時候我們可以通過url重寫,來保證session的有效性。

重寫url的方法如下:

response.encodeURL(request.getRequestURL().toString());    (重寫完URL之後,跳轉的時候,看看瀏覽器的地址變化。)

在Java Servlet API中引用session機制來跟蹤客戶的狀態。session指的是在一段時間內,單個客戶與Web伺服器的一連串相關的互動過程。在一個session中,客戶可能會多次請求同一個網頁,也有可能請求訪問各種不同的伺服器資源。例如在電子郵件應用中,從一個客戶登入到電子郵件系統開始,經過收信,寫信和發信等,直至退出郵件系統,整個過程為一個session。再比如,在網上書店應用中,從一個客戶開始購物,到最後結賬,整個過程為一個session。

會話的建立:HttpSession session = request.getSession(boolean value);

HttpSession session = request.getSession();

會話的使用:javax.servlet.http.HttpSession介面中定義的方法,我們常用的是有關進行資料存取的方法。

session.setAttribute(String name, Object value);

session.getAttribute(String name);