您好,登錄后才能下訂單哦!
這篇文章主要介紹“Session對象如何使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Session對象如何使用”文章能幫助大家解決問題。
session在網絡中被稱為會話。由于HTTP協議是一種無狀態協議,也就是當一個客戶向服務器發出請求,服務器接收請求,并返回響應后,該連接就結束了,而服務器并不保存相關的信息。為了彌補這一缺點,HTTP協議提供了session。通過session可以在應用程序的Web頁面間進行跳轉時,保存用戶的狀態,使整個用戶會話一直存在下去,知道關閉瀏覽器。但是,如果在一個會話中,客戶端長時間不向服務器發出請求,session對象就會自動消失。這個時間取決于服務器,例如,Tomcat服務器默認為30分鐘。不過這個時間可以通過編寫程序進行修改。
setAttribute()方法:將信息保存在session范圍內
session.setAttribute(String name, Object obj)
參數說明:
name:用于指定作用域在session范圍內的變量名
obj:保存在session范圍內的對象
getAttribute()方法:獲取保存在session范圍內的信息
session.getAttribute(String name)
參數說明:
name:指定保存在session范圍內的關鍵字
說明:getAttribute()方法的返回值是Object類型,如果將獲取到的信息賦值給String類型的變量,則需要進行強制類型轉換或是調用其toString()方法。
session.removeAttribute()方法:移除存儲在session會話中的對象
session.removeAttribute(String name)
參數說明:
name:指定作用域在session范圍內的變量名。一定要保證該變量在session范圍內有效,否則將拋出異常。
session.invalidate()方法:銷毀session
session.invalidate()
說明:session對象被銷毀后,將不可以再使用該session對象了。如果在session被銷毀后,再調用session對象的任何方法,都將報出Session already invalidated異常。
在應用session對象時應該注意session的生命周期。一般來說,session的生命周期在20~30分鐘之間。當用戶首次訪問時將產生一個新的會話,以后服務器就可以記住這個會話狀態,當會話生命周期超時時,或者服務器端強制使會話失效時,這個session就不能使用了。在開發程序時應該考慮到用戶訪問網站時可能發生的各種情況,例如用戶登錄網站后在session的有效期外進行相應的操作,用戶會看到一張錯誤頁面。這樣的現象時不允許發生的。為了避免這種情況的發生,在開發系統時應該對session的有效性進行判斷。
session.getLastAccessedTime():返回客戶端最后一次與會話相關聯的請求時間
session.getMaxInactiveInterval():以秒為單位返回一個會話內兩個請求最大時間間隔
session.setMaxInactiveInterval():以秒為單位設置session的有效時間
session.getLastAccessedTime();session.getMaxInactiveInterval();session.setMaxInactiveInterval(int arg);
參數說明:
arg:seesion的有效期(單位:秒)
index.jsp:提供用戶輸入用戶名的文本框,并提交到session.jsp頁面中
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>session對象的使用-index.jsp</title></head><body><form id="form1" name="form1" method="post" action="session.jsp"> <div align="center"> <table width="28%" border="0"> <tr> <td width="36%"> <div align="center">您的名字是:</div> </td> <td width="64%"> <label> <div align="center"> <input type="text" name="name" /> </div> </label> </td> </tr> <tr> <td colspan="2"> <label> <div align="center"> <input type="submit" name="Submit" value="提交" /> </div> </label> </td> </tr> </table> </div></form></body></html>
session.jsp:將用戶名保存到session中,并提供用戶輸入最喜歡去的地方的文本框
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>session對象的使用-session.jsp</title></head><body> <% String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8"); //獲取用戶填寫的用戶名 session.setAttribute("name", name); //將用戶名保存到session對象中 %> <div align="center"> <form id="form1" name="form1" method="post" action="result.jsp"> <table width="28%" border="0"> <tr> <td>您的名字是:</td> <td><%=name %></td> </tr> <tr> <td>您最喜歡去的地方是:</td> <td><label> <input type="text" name="address" /> </label></td> </tr> <tr> <td colspan="2"><label> <div align="center"> <input type="submit" name="Submit" value="提交" /> </div> </label></td> </tr> </table> </form> </div></body></html>
result.jsp:獲取session中的用戶名對象,再獲取session.jsp頁面提交過來的最喜歡去的地方,并在頁面中顯示出來
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>session對象的使用-result.jsp</title></head><body> <% String name = (String)session.getAttribute("name"); //獲取保存在session范圍內的對象 String solution = new String(request.getParameter("address").getBytes("ISO-8859-1"),"utf-8"); //獲取用戶輸入的最喜歡去的地方 %> <form id="form1" name="form1" method="post" action=""> <table width="28%" border="0"> <tr> <td colspan="2"><div align="center"><strong> 顯示答案 </strong></div></td> </tr> <tr> <td width="49%"><div align="left"> 您的名字是: </div></td> <td width="51%"><label><div align="left"> <%=name %> </div></label></td> </tr> <tr> <td><label><div align="left"> 您最喜歡去的地方是: </div></label></td> <td><div align="left"> <%=solution %> </div></td> </tr> </table> </form></body></html>
關于“Session對象如何使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。