這篇文章主要講解了“Session如何使用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Session如何使用”吧!
10余年的臨西網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整臨西建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“臨西網(wǎng)站設(shè)計”,“臨西網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
Session是什么呢?簡單來說就是服務(wù)器給客戶端的一個編號。當(dāng)一臺WWW服務(wù)器運(yùn)行時,可能有若干個用戶瀏覽正在運(yùn)正在這臺服務(wù)器上的網(wǎng)站。當(dāng)每個用戶首次與這臺WWW服務(wù)器建立連接時,他就與這個服務(wù)器建立了一個Session,同時服務(wù)器會自動為其分配一個SessionID,用以標(biāo)識這個用戶的唯一身份。這個SessionID是由WWW服務(wù)器隨機(jī)產(chǎn)生的一個由24個字符組成的字符串,我們會在下面的實(shí)驗(yàn)中見到它的實(shí)際樣子。
這個唯一的SessionID是有很大的實(shí)際意義的。當(dāng)一個用戶提交了表單時,瀏覽器會將用戶的SessionID自動附加在HTTP頭信息中,(這是瀏覽器的自動功能,用戶不會察覺到),當(dāng)服務(wù)器處理完這個表單后,將結(jié)果返回給SessionID所對應(yīng)的用戶。試想,如果沒有SessionID,當(dāng)有兩個用戶同時進(jìn)行注冊時,服務(wù)器怎樣才能知道到底是哪個用戶提交了哪個表單呢。除了SessionID,在每個Session中還包含很多其他信息。
1.設(shè)置session
java里面,可以給session添加自定義key,value(HttpServletRequest request作為方法的輸入?yún)?shù))
HttpSession session = request.getSession();session.setAttribute("usrid", userid);
2.取得session
jsp里面可以這段來源自CSDN一個討論貼,自己時間后并沒有成功,報錯是session is undifiened,后來又找了資料說javascript不提供訪問session的功能。session只能通過動態(tài)程序操作,可以使用ajax給javascript返回值。
session.getAttribute("username");
java里面可以 (HttpServletRequest request 作為方法的輸入?yún)?shù))
HttpSession session = request.getSession(); session.getAttribute("usrname");
一個使用session進(jìn)行超時訪問控制的實(shí)例
(1)LoginServlet.java 在登錄時,設(shè)置session屬性
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String userid = request.getParameter("username"); String pwd = request.getParameter("password"); JSONObject json = new JSONObject(); AdminDAO adminDAO = new AdminDAO(); ListuserList = adminDAO.findByProperty("usrid", userid); if(userList.get(0).getPassword().equals(pwd)){ json.put("success", true); HttpSession session = request.getSession(); session.setAttribute("usrid", userid); } else { json.put("success", false); json.put("meg", "sorry"); } PrintWriter pw = response.getWriter(); pw.print(json.toString()); pw.close(); }
(2)HomePage.java 在跳轉(zhuǎn)到相關(guān)頁面時,獲取并判斷session
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { JSONObject json = new JSONObject(); HttpSession session = request.getSession(); if(session==null||session.getAttribute("usrid")==null) { json.put("success", false); json.put("meg", "Time out,please login again!"); } else { ... json.put("jsonArray", array); } PrintWriter pw = response.getWriter(); pw.print(json.toString()); pw.close(); }
(3)homePage.html 頁面根據(jù)(2)的返回值判斷是否執(zhí)行跳轉(zhuǎn)操作
$(document).ready(function(){ $.ajax({ url: "HomePageServlet", type: "post", dataType: "json", success: function(data) { if (data["success"]) { ... } else { alert(data["meg"]); window.location.href="login.html"; } } }); });
感謝各位的閱讀,以上就是“Session如何使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Session如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!