HttpSession 對象中可用的幾個重要的方法:
1 public Object getAttribute(String name)
該方法返回在該 session 會話中具有指定名稱的對象,如果沒有指定名稱的對象,則返回 null。
2 public Enumeration getAttributeNames()
該方法返回 String 對象的枚舉,String 對象包含所有綁定到該session 會話的對象的名稱。
3 public long getCreationTime()
該方法返回該 session 會話被建立的時間,自格林尼治標準時間 1970 年 1 月 1 日午夜算起,以毫秒為單位。
4 public String getId()
該方法返回一個包含分配給該 session會話的唯一識別碼的字串。
5 public long getLastAccessedTime()
該方法返回用戶端最後一次發送與該session 會話相關的請求的時間自格林尼治標準時間 1970 年 1 月 1 日午夜算起,以毫秒為單位。
6 public int getMaxInactiveInterval()
該方法返回 Servlet 容器在用戶端訪問時保持session 會話開啟的最大時間間隔,以秒為單位。
7 public void invalidate()
該方法指示該 session 會話無效,並解除綁定到它上面的任何對象。
8 public boolean isNew(
如果用戶端還不知道該 session 會話,或者如果客戶選擇不參入該 session 會話,則該方法返回 true。
9 public void removeAttribute(String name)
該方法將從該 session 會話移除指定名稱的對象。
10 public void setAttribute(String name, Object value)
該方法使用指定的名稱綁定一個對象到該session 會話。
11 public void setMaxInactiveInterval(int interval)
該方法在 Servlet 容器指示該 session會話無效之前,指定用戶端請求之間的時間,以秒為單位。
Tomcat中Session的預設逾時時間為20分鐘,可以在web.xml中配置
<session-config> <session-timeout>60</session-timeout> <!-- 以分鐘為單位--></session-config>
用request.getSession(booleancreate)擷取Session時,如果該客戶的Session不存在,會先建立一個Session再返回
注意,只有訪問Servlet、JSP等程式時才會建立Session,只訪問HTML等靜態資源時並不會建立
Session還可以儲存java bea乃至任何java類和對象
URL地址修正
URL地址修正是對用戶端不支援Cookie的解決方案
URL地址修正的原理是將該使用者Session的id資訊重寫到URL地址中,伺服器能夠解析重寫後的URL擷取Session的id,這樣即使用戶端不支援Cookie,也可以使用Session來記錄使用者狀態
HttpServletResponse類提供了encodeURL(Stringurl)實現URL地址修正
<a href=”<%=response.endodeURL(“index.jsp?wd=java”)%>”>
該方法會自動判斷用戶端是否支援Cookie,如果不支援,則會將使用者Session的id重寫到URL中,重寫後的輸出類似於
<a href=”<%= response.endodeURL(“index.jsp;jsessionid=0CCD096E7F8A123E345EF77?wd=java”)%>”>