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);