一段時間內,單個客戶與Web服務器的一連串相關的交換過程。
Ø 4.1.1 應用的場景: 用戶登錄后保存用戶狀態確定用戶的唯一 Sessin.getId();
Ø 4.1.2 會話的創建和使用: 創建Httpsession session= request.getSession(Boolean value);
Httpsession session= request.getSession();
在第一種方法中,布爾值為true時,如果存在與當前請求關聯的會話,就返回該會話,否則就創建一個新的會話,并把該會話返回。布爾值為 flase 時,如果存在會話返回,否則返回 null, 不再創建會話。
第二種方法等同于第一種方法中的布爾參數值為true的情況。
使用賦值語法: public void setAttribute(String name, Object value) ;
用法: session.setAttribute(“name”,”張曼”);
取值語法: public Object getAttribute(String name);
用法:String username = (String)session.getAttribute(“name”);
Session會保存在服務器端,如果沒有清理機制,會導致性能問題或服務器崩潰。
清空Session:1)程序主動清除Session數據
設置會話失效:session.invalidate();//注銷時
移除會話中一個屬性:
語法: public void removeAttribute(String name);
用法: session.removeAttribute(“name”);
2)服務器主動清除長時間沒有再次發出請求的session
設置會話過期時間:
方法一:public void setMaxInactiveInterval(int interval); (單位:秒)
可以再給Session賦值后,直接設置會話過期時間
方法二: 配置 Web.xml文件
添加
<session-config>
<session-timeout>30<session-timeout>
</session-config> (單位:分鐘 注意放在 wep-app中)
結束Session的三種方式:
HttpSession技術不屬于Http協議范圍內,是由web容器為程序提供的服務。
4.2 cookieØ 4.2.3 應用場景關閉瀏覽器,結束會話,重啟后,用戶名已填寫。登錄郵箱或其他服務,頁面直接填好了用戶名。
Ø 4.2.4 使用方法public void addCookie(Cookie cookie)
Cookie以文件的形式保存信息,存放在客戶端,可以再IE設置該文件。
添加數據: public void addCookie(Cookie cookie)
獲取數據: public Cookie[] getCookies()
設置有效期: public void setmaxAge(int expiry)
用戶可以禁用: cookie
添加:Cookie cookie = new Cookie(“變量名”,值);
Cookie.setmaxAge(60*60) ; //設置有效時間,默認為妙
Response.addCookie(cookie);
返回: Cookie[] cookie = request.getCookes();
for(……){
if(cookie.getName().equals(“變量名”)){
user=cookies[i].getValue;
}
}
禁用Cookie
4.3.1 使用場景: 統計頁面訪問次數,同時在線的人數
4.3.2 實現方式: public void setAttribute(String name,Object object)
Public Object getAttribute(String name)
<%
Object count = application.getAttribute(“count”);
if(count ==null){
application.setAttribute(“count”,new Integer(1));
}else{
Integer I = (Integer)count;
application.setAttribute(“count”,i.value()+1);
}
%>
Request中存儲的數據盡在一個請求中可用。
Session中存儲的數據在一個會話有效期內可以。
application中存儲的數據在在整個web項目中可以。
新聞熱點
疑難解答