亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

利用JSP session對象保持住登錄狀態

2020-07-27 21:22:55
字體:
來源:轉載
供稿:網友

http協議本身是一種無狀態的協議,也就是客戶端連續發送的多個請求之間沒有聯系,下一次請求不關心上一次請求的狀態。

而實際運用中卻希望服務器能記住客戶端請求的狀態,比如在網上購物系統中,服務器端應該能夠識別并跟蹤每個登錄到系統中的用戶挑選并購買商品的整個流程 。為此,web服務器必須采用一種機制來唯一地標識一個用戶,同時記錄該用戶的狀態,這就要用到會話跟蹤技術。

Java Web使用Session來跟蹤會話和管理會話內的狀態。

Session對象是一個jsp內置對象,它在第一個jsp頁面被裝載時自動創建,完成會話期管理。

從一個客戶打開瀏覽器并連接到服務器開始,到客戶關閉瀏覽器離開這個服務器結束,被稱為一個會話。當一個客戶訪問一個服務器時,可能會在這個服務器的幾個頁面之間反復連接,反復刷新一個頁面,服務器應當通過某種辦法知道這是同一個客戶,這就需要session對象。

當發生以下四種情形其中之一時,session對象中的數據便會清空 :
用戶關閉目前正在使用的瀏覽器程序。
關閉網頁服務器。
用戶未向服務器提出請求超過預設的時間,Tomcat服務器預設為30分鐘。
運行程序結束session。

1.建立session變量

在JSP中不需要特別設置程序代碼來建立用戶session,當程序使用了session對象時,便會自動建立session,而下面這行語句便是在session中新增變量數據的方式:
session.setAttribute(“變量名稱”,變量內容)
變量內容可為字符串或者其他對象類型,接著讓我們來看看如何使用這個方法在session中設置變量數據:

<% session.setAttribute(“id”,”編號”); //設置字符串 session.setAttribute(“expire”,new Date(86400*10)); //設置日期 session.setAttribute(“level”,new Integer(3)); //設置整數 %> 

2.返回session中的變量

在session中設置了變量數據后,在其他的各個網頁中便可使用getAttribute讀取其中的內容,此方法所返回的數據類型為對象(Object)類型,語法如下:
session.getAttribute(“變量名稱”)

3.返回所有session中的變量名稱

getAttributeNames()方法可以取出session中所有變量的名稱,其結果為一個枚舉類的實例。語法為:
session.getAttributeNames()

4.清除session中的變量
removeAttribute()方法可以清除session中的變量數據,使用語法如下:
session.removeAttribute(“變量名稱”)

5.結束session

對于已經建立的session,可使用invalidate()方法將其結束,使用語法為:
session.invalidate()

其他的一些可能會用到的方法:

現在寫一個實例:通過session來記錄客戶的登錄狀態:
index.jsp登錄界面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head>  <title>$Title$</title> </head> <body> <form action="process_login.jsp" method="post">  用戶名:<input type="text" name="username">  密碼:<input type="text" name="password">  <input type="submit" value="submit">  <input type="reset" value="reset"> </form> <a href="page1.jsp" rel="external nofollow" rel="external nofollow" >1</a> <a href="page2.jsp" rel="external nofollow" rel="external nofollow" >2</a> <a href="page3.jsp" rel="external nofollow" rel="external nofollow" >3</a> </body></html>

process_login.jsp處理登錄數據,這里知道輸入密碼是123都可以登錄成功:

session.getAttribute()將會告訴page1.jsp文件這個用戶是否登錄成功了

<%@ page contentType="text/html;charset=UTF-8" language="java" %><%  String username=request.getParameter("username");  String password=request.getParameter("password");  if (password.equals("123")){    session.setAttribute("username",username);  }  response.sendRedirect("page1.jsp");%>

logout.jsp登出

<%@ page contentType="text/html;charset=UTF-8" language="java" %><%  session.invalidate();  response.sendRedirect("index.jsp");%>

page1.jsp, page2.jsp, page3.jsp大同小異顯示不同的頁面,用于驗證登錄狀態的記錄(這里僅以page1.jsp為例):

注意這里的判斷邏輯是一種很有趣的寫法,把jsp代碼和html代碼完全融合起來了,不過我覺得這樣寫還是比較亂,寧愿只用一個jsp代碼段,里面用out.println()在html中來實現顯示不同的內容

這里主要是靠判斷session.username是否為空來判斷是否登錄過了,并且傳遞相關的參數信息

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>  <title>Title</title></head><body>  這里是Page1<br>  <%if (session.getAttribute("username")==null){%>  用戶還沒有登錄  <%}else {%>  已登錄,用戶名:<%= session.getAttribute("username")%>  <%}%>  <br>  <a href="page1.jsp" rel="external nofollow" rel="external nofollow" >page1</a>  <a href="page2.jsp" rel="external nofollow" rel="external nofollow" >page2</a>  <a href="page3.jsp" rel="external nofollow" rel="external nofollow" >page3</a>  <a href="index.jsp" rel="external nofollow" >login</a>  <a href="logout.jsp" rel="external nofollow" >logout </a></body></html>

可以看到,登錄以后,不管跳轉到哪個頁面,用戶的登錄狀態都沒有丟失

一旦logout登出以后,session.invalidate()方法被調用,session被銷毀,就跟蹤不到用戶的登錄信息了

同時,如果我采用另一個瀏覽器訪問同樣的頁面,以“2號用戶”為username登錄,也會一直記錄到這個用戶的登錄信息(不過如果是同一種瀏覽器的話就不行了)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲美女精品成人在线视频| 国产精品久久中文| 久久欧美在线电影| 色樱桃影院亚洲精品影院| 狠狠躁夜夜躁久久躁别揉| 国产99久久久欧美黑人| 欧美在线观看日本一区| 久久噜噜噜精品国产亚洲综合| 一区二区三区无码高清视频| 91国偷自产一区二区三区的观看方式| 日韩av在线播放资源| 国产精品夜间视频香蕉| 欧美日韩亚洲一区二| 91在线色戒在线| 国产狼人综合免费视频| 亚洲国产精品嫩草影院久久| 国产美女高潮久久白浆| 色综合色综合网色综合| 欧美日韩国产激情| 欧美网站在线观看| 日韩av电影在线网| 亚洲人成在线电影| 欧美日韩亚洲视频| 色噜噜狠狠狠综合曰曰曰88av| 一区二区亚洲欧洲国产日韩| 日韩激情第一页| 91啪国产在线| 久久久av亚洲男天堂| 国产亚洲欧洲黄色| 日韩在线观看免费全集电视剧网站| 精品国产福利视频| 黄色成人在线播放| 国内精品久久久久| 国产精品久久久久av| 精品久久久久久中文字幕大豆网| 亚洲另类激情图| 精品久久久久久中文字幕一区奶水| 欧美俄罗斯乱妇| 91久久久在线| 少妇高潮 亚洲精品| 亚洲国产高潮在线观看| 亚洲天堂成人在线视频| 国产精品无av码在线观看| 国产激情综合五月久久| www.日韩系列| 日韩乱码在线视频| 国产精品99久久久久久白浆小说| 久久久久免费精品国产| 国产中文字幕日韩| 亚洲视频999| 午夜欧美不卡精品aaaaa| 欧美韩国理论所午夜片917电影| 精品久久香蕉国产线看观看gif| 久久成人精品电影| 精品一区精品二区| 欧美电影免费在线观看| 亚洲免费一在线| 日韩精品视频免费专区在线播放| 日韩免费观看在线观看| 中文字幕久热精品视频在线| 亚洲精品美女视频| 亚洲色图狂野欧美| 日韩欧美精品在线观看| 国产一区二区三区在线看| 正在播放欧美视频| 久久av.com| 日韩国产精品视频| 日韩www在线| 国产精品扒开腿做爽爽爽视频| 久久91超碰青草是什么| 97成人精品视频在线观看| 国产91色在线播放| 日韩精品中文字幕有码专区| 久久久久亚洲精品国产| 亚洲第一网站男人都懂| 日韩av电影在线播放| 久久国产精品久久久久久久久久| 国产一区二区三区四区福利| 日本成人激情视频| 国产成人拍精品视频午夜网站| 国产视频久久久久久久| 亚洲国产黄色片| 久久精品国产69国产精品亚洲| 日韩欧美中文字幕在线观看| 国产精品视频免费在线观看| 欧美中文字幕在线播放| 欧美有码在线视频| 欧美夫妻性生活xx| 国产精品久久久久久av福利| 成年无码av片在线| 亚洲一区二区福利| 国内外成人免费激情在线视频| 亚洲自拍欧美另类| 色琪琪综合男人的天堂aⅴ视频| 色琪琪综合男人的天堂aⅴ视频| 亚洲xxx自由成熟| 亚洲天堂av在线免费| 午夜精品福利电影| 欧美视频在线看| 日韩视频第一页| 国产精品久久久av| 亚洲天堂av图片| 亚洲伊人第一页| 668精品在线视频| 亚洲最大福利网站| 欧美黄网免费在线观看| 国产精品美女久久久久久免费| 亚洲精品福利视频| 久久97久久97精品免视看| 热久久美女精品天天吊色| 国产精品欧美激情在线播放| 97久久精品在线| 欧美中文字幕第一页| 亚洲第一网中文字幕| 日韩av免费在线观看| 秋霞成人午夜鲁丝一区二区三区| 成人激情黄色网| 国产99久久精品一区二区| 91嫩草在线视频| 国产精品观看在线亚洲人成网| 最近中文字幕2019免费| 日本中文字幕不卡免费| 欧美疯狂做受xxxx高潮| 这里只有精品在线观看| 日韩亚洲在线观看| 久久精品2019中文字幕| 亚洲跨种族黑人xxx| 国产女精品视频网站免费| 国产精品久久久久久久av电影| 亚洲偷欧美偷国内偷| 这里只有精品在线播放| 日韩有码在线播放| 91探花福利精品国产自产在线| 尤物九九久久国产精品的特点| 国产午夜一区二区| 亚洲а∨天堂久久精品9966| 超碰97人人做人人爱少妇| 国产日韩欧美在线| 欧美午夜精品在线| 国产精品xxx视频| 国产精品久久国产精品99gif| 亚洲最大福利网站| 亚洲综合日韩在线| 136fldh精品导航福利| 国产精品麻豆va在线播放| 中文字幕在线看视频国产欧美在线看完整| 亚洲护士老师的毛茸茸最新章节| 久久久亚洲精选| 精品久久久久久国产| 国产99在线|中文| www.亚洲一二| 国内伊人久久久久久网站视频| www国产精品com| 久久国产精品久久久久| 亚洲国产精品久久久久久| 亚洲第一av网站| 国产精品十八以下禁看| 97超视频免费观看| 国产精品露脸av在线| 亚洲欧美在线免费观看| 日韩不卡在线观看| 亚洲精品小视频| 亚洲国产精品久久久久| 成人激情视频在线观看|