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

首頁 > 編程 > JSP > 正文

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

2024-09-05 00:23:05
字體:
來源:轉載
供稿:網友

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

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

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

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

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

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()

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

JSP,session,登錄

現在寫一個實例:通過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>

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

JSP,session,登錄

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

JSP,session,登錄

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

JSP,session,登錄

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


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久综合免费视频| 国产一区二区丝袜高跟鞋图片| 伊人久久久久久久久久久久久| 国模精品视频一区二区三区| 亚洲福利在线观看| 欧美理论在线观看| 欧美限制级电影在线观看| 国产精品爽爽ⅴa在线观看| 亚洲天堂免费视频| 青青在线视频一区二区三区| 2019日本中文字幕| 日韩欧美亚洲国产一区| 午夜精品三级视频福利| 欧美日韩亚洲视频| 黑人极品videos精品欧美裸| 日本一区二区在线免费播放| 成人精品视频久久久久| 日韩有码在线视频| 欧美日韩在线影院| 欧美国产欧美亚洲国产日韩mv天天看完整| 午夜精品久久久久久久99热| 亚洲欧美制服丝袜| 欧美激情啊啊啊| 亚洲天堂免费视频| 不卡毛片在线看| 亚洲欧美另类国产| 久久综合色影院| 亚洲欧美精品中文字幕在线| 日韩色av导航| 欧美黄色成人网| y97精品国产97久久久久久| 欧美视频在线观看免费| 国产99视频在线观看| 亚洲视频在线观看免费| 国产综合在线看| 国产精品 欧美在线| 激情成人中文字幕| 富二代精品短视频| 精品偷拍一区二区三区在线看| yw.139尤物在线精品视频| 久久的精品视频| 亚洲色图狂野欧美| 蜜月aⅴ免费一区二区三区| 亚洲a在线观看| 日韩欧美在线观看视频| 国产精品久久久久999| 国产欧美一区二区三区久久| 欧美激情精品久久久久久免费印度| 丰满岳妇乱一区二区三区| 亚洲国产精品网站| 亚洲字幕在线观看| 精品国产区一区二区三区在线观看| 国产精品视频xxxx| 国产精品欧美日韩久久| 综合国产在线观看| 亚洲综合在线中文字幕| 4438全国成人免费| 2019国产精品自在线拍国产不卡| 97精品国产91久久久久久| 91福利视频网| 国产精品十八以下禁看| 在线电影av不卡网址| 久久天天躁狠狠躁夜夜av| 欧美大片va欧美在线播放| www.日韩av.com| 日韩欧美精品免费在线| 久久在线视频在线| 久久精品人人做人人爽| 国产精品影片在线观看| 日韩中文字幕免费| 伊人成人开心激情综合网| 亚洲成人xxx| 国产999精品久久久| 色偷偷噜噜噜亚洲男人的天堂| 久久影视电视剧免费网站| 欧美激情图片区| 欧美xxxx18性欧美| 国产成人精品日本亚洲| 欧美日韩国产激情| 中文字幕国产精品久久| 欧美日韩亚洲精品内裤| 亚洲精品久久久久| 成人国产精品一区| 一区二区三区在线播放欧美| 久久99青青精品免费观看| 亚洲图中文字幕| 亚洲最新在线视频| 色视频www在线播放国产成人| xvideos亚洲人网站| 国产精品久久久久高潮| 日韩在线免费观看视频| 国产成人精品视频在线观看| 国产精品一区二区久久精品| 亚洲久久久久久久久久| 永久免费看mv网站入口亚洲| 91国产精品视频在线| 久久亚洲精品毛片| 亚洲欧美一区二区三区久久| 91免费版网站入口| 性金发美女69hd大尺寸| 中文字幕亚洲综合| 欧美综合国产精品久久丁香| 欧美片一区二区三区| 最新国产精品亚洲| 国产精品成人v| 国产精品高潮粉嫩av| 日韩欧美高清在线视频| 97精品视频在线观看| 国产精品久久久久99| 国产精品吹潮在线观看| 日韩欧美精品免费在线| 久久91亚洲精品中文字幕奶水| 国产成人精品久久| 欧美日韩第一页| 日韩中文字幕网站| 欧美人成在线视频| 欧美第一黄色网| 欧美激情综合亚洲一二区| 亚洲视频axxx| 国产精品免费电影| 亚洲a区在线视频| 欧美国产日韩一区二区三区| 久久久亚洲网站| 国产成人欧美在线观看| 国产精品久久久久久久久久新婚| 国产精品pans私拍| 97精品视频在线| 亚洲国产一区二区三区四区| 精品女同一区二区三区在线播放| 久久久久中文字幕| 68精品久久久久久欧美| 97久久久久久| 国产一区二区香蕉| 97色在线视频| 大荫蒂欧美视频另类xxxx| 97精品久久久中文字幕免费| 在线观看久久久久久| 亚洲视频在线免费观看| 欧美激情久久久| 国产网站欧美日韩免费精品在线观看| 日韩电影中文字幕在线观看| 91老司机精品视频| 国产精品永久免费| 亚洲已满18点击进入在线看片| 日韩在线视频网站| 亚洲福利影片在线| 一区国产精品视频| 亚洲欧美视频在线| 亚洲国产精品va在线看黑人| 欧美性xxxxxx| 日本中文字幕成人| 日韩激情片免费| 国产日韩精品在线观看| 国产一区二区免费| 欧美电影在线免费观看网站| 欧美日韩国产中文精品字幕自在自线| 91视频国产一区| 国产在线拍揄自揄视频不卡99| 亚洲性视频网站| 国产91精品久久久久久| 欧美日韩美女在线观看| 欧美日韩免费观看中文| 亚洲第五色综合网| 欧美日韩一二三四五区|