session對象
通過session可以在應用程序的Web頁面之間進行跳轉時,保存用戶的狀態,使整個用戶會話一直存在下去,直到浏覽器關閉。但是在一個會話中,客戶端長時間不向服務器發出請求,session會自動消失。這個時間取決於服務器,可以通過程序進行修改。
通過session的setAttribute()和getAttribute()方法實現。
setAttribute()方法的語法格式:
session.setAttribute(String name,Object obj)
參數說明:
name:變量名
obj:保存在session范圍的對象
范例:
將用戶名“張三”保存到session范圍的username變量中
session.setAttribute(“usernme1”,”張三”);
getAtrribute()的語法格式
getAttrbite(String name);
參數說明:
name:保存在session變量范圍的參數名
getAttribute()方法的返回值是Object類型。
removeAttribute()的語法格式:
removeAttribute(String name)
參數說明:
name:session中的變量名
范例:
將保存在session中的username移除
<%
session.removeAttribute(“username”);
%>
session對象的invalidate()方法可以銷毀session,其語法格式為:
Session.invalidate();
session對象被銷毀後,將不可在使用session對象,否則將報出Session already invalidate異常
在session對象中提供了設置會話生命周期的方法:
getLastAccessTime ():返回客戶端最後一次與會話有關的請求時間
getMaxInactiveInterval():以秒為單位,返回一個會話內兩個請求的最大時間間隔
setMaxInactiveInterval():以秒為單位,設置session的有效時間
范例:
在index.jsp頁面中,提供用戶輸入用戶名的文本框;在session.jsp頁面中,將用戶 輸入的用戶名保存在session中,用戶在該頁面可以添加最喜歡的地方,在result .jsp頁面中,顯示用戶輸入的用戶名和最喜歡的地方
index.jsp頁面如下
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
Result.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
String place = request.getParameter("place");
session.setAttribute("place",place);//獲取保存在session中的對象
String name = request.getParameter("name");
%>
Session.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
String name = request.getParameter("name");//獲取填寫的用戶名
session.setAttribute("name", name);//將用戶名保存在session中
%>