In ASP gibt es zwei interne Objekte, die einige Informationen speichern können: das Anwendungsobjekt und das Sitzungsobjekt. Das Anwendungsobjekt gilt für den gesamten Anwendungszeitraum und wird von allen Benutzern gemeinsam genutzt, die die Website besuchen gilt für die Dauer der Sitzung, es existiert nur für den aktuellen Benutzer.
Einführung in das Sitzungsobjekt
Wenn Sie an einer Anwendung auf Ihrem Computer arbeiten, öffnen Sie sie, nehmen Änderungen vor und schließen sie dann, ähnlich wie bei einer Konversation ( Sitzung). Der Computer weiß, wer Sie sind und wann Sie Anwendungen öffnen und schließen. Das Problem tritt jedoch im Internet auf, da HTTP-Adressen den Status nicht aufrechterhalten können und der Webserver nicht weiß, wer Sie sind und was Sie getan haben.
Der Hauptzweck des Session-Objekts besteht darin, einige Informationen für jeden Benutzer zu speichern, der die Website besucht. Wenn sich der Benutzer beispielsweise anmeldet, können wir hinzufügen Es wird mit den Sitzungsspeicherinformationen des Benutzers verknüpft, um zu erkennen, dass der aktuelle Benutzer angemeldet ist.
Das Prinzip von Session ist so Wenn ein Benutzer die Website zum ersten Mal besucht, weist IIS dem Benutzer eine lange zufällige -Zeichenfolge zu. Diese zufällige Zeichenfolge heißt SessionID, und der Server sendet sie dann an den Client und speichert sie in Cookies. Wenn der Benutzer dann andere Seiten auf dem Server besucht, ruft der Server diese SessionID ab und ruft die SessionID aus dem Speicher ab. Relevante Daten werden in der Sammlung von Session-Objekten platziert.
Inhaltssammlung
In dieser Sammlung können wir einige Informationen über den aktuellen Benutzer speichern. Der folgende Code zeigt beispielsweise, wie Daten gespeichert und gelesen werden:
<% '名字为username的Session集合中存储了一个“ZhangSan”字符串 Session.Contents("username") = "ZhangSan" Dim UserName '读取Session中的数据,可以省略Contents' UserName = Session.Contents("username")和下面一样 UserName = Session("username") Response.Write("<h2>" & UserName & "</h2>") %>
Das Session-Objekt verfügt über drei Methoden (Contents.Remove, Contents.RemoveAll, Abandon), die zum Löschen der Daten in der Session-Sammlung oder zum Abbrechen der aktuellen Sitzung verwendet werden.
Erstes Beispiel(SessionContents.asp) Wir zeigen, wie die Methoden Remove und RemoveAll verwendet werden. Der Code lautet wie folgt:
...<h3>当前SessionID值为 <%=Session.SessionID%></h3><h3>Session中存储数据</h3><%'利用 Contents.Count 遍历 Session 的过程Sub Traversal_P() Dim i For i = 1 To Session.Contents.Count Response.Write("Session(""" & Session.Contents.key(i) & """) = " & Session.Contents(i)) Response.Write("<br>") NextEnd Sub'For Each 遍历 Session.Contents 集合 Sub Traversal_E() Dim x For Each x In Session.Contents Response.Write("Session(""" & x & """) = " & Session(x)) Response.Write("<br>") NextEnd Sub'Session.Contents中存储了多个数据,如下Session.Contents("username") = "ZhangSan"Session.Contents("password") = "12345678"Session.Contents("date")="2015/08/14"Session.contents("author")="pchmonster"'遍历 Contents 集合Traversal_E()%><hr><h3>删除名为username的数据</h3><%'删除 username 数据Session.Contents.Remove("username")'重新遍历 Contents 集合Traversal_P()%><hr><h3>删除所有的Session数据</h3><%'删除所有的数据Session.Contents.RemoveAll() Traversal_E()%>...
Der obige Code wird wird nach der Ausführung wie folgt angezeigt:
Diese Codes demonstrieren zwei Methoden zum Durchlaufen der Session.Contents-Sammlung. Bitte schauen Sie sich das genauer an.
Das zweite Beispiel (SessionAbandon.asp) demonstriert die Wirkung der Abandon-Methode. Durch die Demonstration können wir erkennen, dass der Unterschied zwischen der RemoveAll-Methode und der Abandon-Methode nur darin besteht, dass RemoveAll löscht die aktuelle Sammlung, der Client verwendet jedoch weiterhin dieselbe SessionID (die SessionID bleibt im ersten Beispiel unverändert). Nachdem die Abandon-Methode aufgerufen wurde, kann weiterhin auf die Sitzungssammlung auf der aktuellen Seite zugegriffen werden. Nachdem die Seite geschlossen oder aktualisiert wurde, wird die vorherige Sitzung gelöscht (in diesem Beispiel ändert sich die Sitzungs-ID).
Der Code lautet wie folgt:
<%'Abandon的使用后,在当前页面仍可以访问Session集合,关闭页面或刷新后'会使Session被删除,SessionID也就会改变Session.Abandon()'首先我们要记录一下SessionID的值,存放到Cookies中Dim numVisits, SID Response.Cookies("numVisits").Expires = DateAdd("d", 10, Now) Response.Cookies("SID").Expires = DateAdd("d", 10, Now) SID = Request.Cookies("SID") numVisits = Request.Cookies("numVisits")If numVisits = "" or SID = "" Then '如果是第一次运行该页面,则记录当前Sessio nID值 Response.Cookies("numVisits") = 1 Response.Cookies("SID") = Session.SessionID%> <h3>您这是第一次访问该页面,当前页面的SessionID为</h3> <h2><%=Session.SessionID%></h2><%Else%> <hr> <h3>您这是第<%=numVisits%>次访问该页面,当前页面的SessioID为</h3> <h2><%=Session.SessionID%></h2> <h3>您第一次访问时的SessionID为</h3> <h2><%=Request.Cookies("SID")%></h2><% numVisits = numVisits + 1 Response.Cookies("numVisits") = numVisitsEnd If%>
Wenn Sie diese Seite zum ersten Mal ausführen, wird die aktuelle Sitzungs-ID in Cookies aufgezeichnet, wie unten gezeigt:
Nachdem die Seite mehrmals aktualisiert oder erneut geöffnet wurde, wird die Sitzung aufgrund der Abandon-Methode gelöscht und die Sitzungs-ID ändert sich ständig, wie unten gezeigt:
CodePage, SessionID, Timeout-Attribut
CodePage-Attribut definiert den Zeichensatz des Ausgabeinhalts der aktuellen Seite. Der Zeichensatz wird hier durch Zahlen dargestellt. Beispielsweise bedeutet
936 vereinfachtes Chinesisch (GB2312), vereinfachtes Chinesisch
950 bedeutet traditionelles Chinesisch (Big5), traditionelles Chinesisch
65001 bedeutet Unicode (UTF-8)
Besonderer Hinweis
<%@CODEPAGE="65001"%>Gilt für alle statischen Zeichenfolgen
Response.CodePage, Session.CodePage gilt für alle dynamischen Ausgabe Der Gültigkeitsbereich der Zeichenfolge
Response.CodePage gilt nur für eine einzelne Antwort, der Gültigkeitsbereich von
Session.CodePage gilt jedoch für alle Antworten in einer Sitzung
SessionID 属性可以获得当前用户的 SessionID,有时候在客户端浏览器不支持 Cookies 的情况下,你可以将 SessionID 附加在客户端的 QueryString 变量中,从而标识每一个客户端。
Timeout 属性用于设定客户的 Session 超时期。客户对于 SessionID 并不是长期占有的,在其一段时间内没有和服务器端进行任何交互后,服务器端将放弃该 Session。
下面的代码(SessionCST.asp)中将演示这个三个属性的使用方法,代码如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <%Session.CodePage = 65001'作用于所有动态输出的字符串%> <!doctype html> <html> <head> <meta charset="utf-8"> <title>CodePage、SessionID、TimeOut属性的应用</title> </head> <body> <h3>当前页面使用的CodePage是:</h3> <h2><%=Session.CodePage%></h2> <hr> <h3>当前页面的SessionID是:</h3> <h2><%=Session.SessionID%></h2> <hr> <h3>当前页面Session默认超时时间为:</h3> <h2><%=Session.Timeout%>分钟</h2> </body> </html>
运行后,效果如下:
【相关推荐】
1. ASP免费视频教程
Das obige ist der detaillierte Inhalt vonEinführung in drei Methoden des Sitzungsobjekts in ASP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!