Maison  >  Article  >  développement back-end  >  Présentation de trois méthodes d'objet Session dans ASP

Présentation de trois méthodes d'objet Session dans ASP

Y2J
Y2Joriginal
2017-05-18 11:36:142020parcourir

Dans ASP, il existe deux objets internes qui peuvent stocker certaines informations. Il s'agit de l'objet Application et de l'objet Session. L'objet Application est pour toute la période de candidature et est partagé par tous les utilisateurs qui visitent le site Web. est pour la durée de la session, il n'existe que pour l'utilisateur actuel.

Présentation de l'objet Session

Lorsque vous travaillez sur une application sur votre ordinateur, vous l'ouvrez, apportez des modifications, puis la fermez, un peu comme une conversation ( Session). L'ordinateur sait qui vous êtes et sait quand vous ouvrez et fermez des applications. Cependant, le problème se pose sur Internet, car les adresses HTTP ne peuvent pas conserver le statut et le serveur Web ne sait pas qui vous êtes et ce que vous avez fait.

L'objectif principal de l'objet Session est de stocker certaines informations pour chaque utilisateur qui visite le site Web. Par exemple, lorsque l'utilisateur se connecte, nous pouvons ajouter. aux informations du magasin de sessions de l'utilisateur pour identifier que l'utilisateur actuel est connecté.

Le principe de Session est le suivant Lorsqu'un utilisateur visite le site Web pour la première fois, IIS attribue une identification à l'utilisateur. Cette identification est une longue chaîne aléatoire. , cette chaîne aléatoire est appelée SessionID, puis le serveur l'envoie au client et l'enregistre dans les Cookies. Ensuite, lorsque l'utilisateur visite d'autres pages du serveur, le serveur obtient ce SessionID et obtient le SessionID de la mémoire. Les données pertinentes sont placées dans la collection d'objets Session.

Collection de contenus

Nous pouvons stocker certaines informations sur l'utilisateur actuel dans cette collection. Par exemple, le code suivant montre comment stocker et lire les données :

<%
&#39;名字为username的Session集合中存储了一个“ZhangSan”字符串
Session.Contents("username") = "ZhangSan"
Dim UserName
&#39;读取Session中的数据,可以省略Contents&#39;
UserName = Session.Contents("username")和下面一样
UserName = Session("username")
Response.Write("<h2>" & UserName & "</h2>")
%>

L'objet Session dispose de trois méthodes (Contents.Remove, Contents.RemoveAll, Abandon), qui sont utilisées pour supprimer les données de la collection Session ou abandonner la session en cours.

Premier exemple(SessionContents.asp) Nous allons montrer comment utiliser les méthodes Remove et RemoveAll Le code est le suivant :

...<h3>当前SessionID值为 <%=Session.SessionID%></h3><h3>Session中存储数据</h3><%&#39;利用 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&#39;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&#39;Session.Contents中存储了多个数据,如下Session.Contents("username") = "ZhangSan"Session.Contents("password") = "12345678"Session.Contents("date")="2015/08/14"Session.contents("author")="pchmonster"&#39;遍历 Contents 集合Traversal_E()%><hr><h3>删除名为username的数据</h3><%&#39;删除 username 数据Session.Contents.Remove("username")&#39;重新遍历 Contents 集合Traversal_P()%><hr><h3>删除所有的Session数据</h3><%&#39;删除所有的数据Session.Contents.RemoveAll()
Traversal_E()%>...

Le code ci-dessus sera. être affiché comme suit après l'exécution :

Présentation de trois méthodes dobjet Session dans ASP

Ces codes démontrent deux méthodes pour parcourir la collection Session.Contents, veuillez y regarder de plus près.

Le deuxième exemple (SessionAbandon.asp) démontre l'effet de la méthode Abandon À travers la démonstration, nous pouvons voir que la différence entre la méthode RemoveAll et la méthode Abandon est que RemoveAll uniquement. supprime la collection actuelle mais le client utilise toujours le même SessionID (le SessionID reste inchangé dans le premier exemple). Après l'appel de la méthode Abandon, la collection Session est toujours accessible sur la page actuelle. Une fois la page fermée ou actualisée, la session précédente sera supprimée (le SessionID changera dans cet exemple).

Le code est le suivant :

<%&#39;Abandon的使用后,在当前页面仍可以访问Session集合,关闭页面或刷新后&#39;会使Session被删除,SessionID也就会改变Session.Abandon()&#39;首先我们要记录一下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
  &#39;如果是第一次运行该页面,则记录当前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%>

La première fois que vous exécutez cette page, l'ID de session actuel sera enregistré dans les cookies, comme indiqué ci-dessous :

Présentation de trois méthodes dobjet Session dans ASP

Après avoir actualisé la page plusieurs fois ou l'avoir rouverte, en raison de la méthode Abandon, la session sera supprimée et l'ID de session continuera de changer, comme indiqué ci-dessous :

Présentation de trois méthodes dobjet Session dans ASP

CodePage, SessionID, Timeout Attribute

L'attribut CodePage définit le jeu de caractères du contenu de sortie de la page actuelle. Le jeu de caractères ici est représenté par des nombres. Par exemple,

936 signifie chinois simplifié (GB2312), chinois simplifié

950 signifie chinois traditionnel (Big5), chinois traditionnel

65001 signifie Unicode (UTF-8)

Note spéciale

S'applique à toutes les chaînes statiques
Response.CodePage, Session.CodePage s'applique à toutes les chaînes dynamiques sortie La portée de la chaîne
Response.CodePage n'est que dans une seule réponse mais la portée de
Session.CodePage est dans toutes les réponses d'une session

SessionID 属性可以获得当前用户的 SessionID,有时候在客户端浏览器不支持 Cookies 的情况下,你可以将 SessionID 附加在客户端的 QueryString 变量中,从而标识每一个客户端。

Timeout 属性用于设定客户的 Session 超时期。客户对于 SessionID 并不是长期占有的,在其一段时间内没有和服务器端进行任何交互后,服务器端将放弃该 Session。

下面的代码(SessionCST.asp)中将演示这个三个属性的使用方法,代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage = 65001&#39;作用于所有动态输出的字符串%>
<!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>

运行后,效果如下:

Présentation de trois méthodes dobjet Session dans ASP

【相关推荐】

1. ASP免费视频教程

2. 详解ASP中Session的使用技巧

3. ASP session简单示例

4. 关于ASP中session的详细介绍

5. 教你解决ASP session丢失的方法

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn