एएसपी सत्र वस्तु
एक सत्र ऑब्जेक्ट उपयोगकर्ता सत्र के बारे में जानकारी संग्रहीत करता है, या सेटिंग्स बदलता है।
सत्र वस्तु
जब आप अपने कंप्यूटर पर किसी एप्लिकेशन के साथ काम कर रहे होते हैं, तो आप उसे खोलते हैं, कुछ बदलाव करते हैं और फिर आप उसे बंद कर देते हैं। यह काफी हद तक एक सत्र की तरह है। कंप्यूटर जानता है कि आप कौन हैं। यह जानता है कि आप एप्लिकेशन को कब खोलते हैं और कब बंद करते हैं। हालाँकि, इंटरनेट पर एक समस्या है: वेब सर्वर यह नहीं जानता कि आप कौन हैं और आप क्या करते हैं, क्योंकि HTTP पता स्थिति को बनाए नहीं रखता है।
ASP प्रत्येक उपयोगकर्ता के लिए एक अद्वितीय कुकी बनाकर इस समस्या का समाधान करता है। कुकी को उपयोगकर्ता के कंप्यूटर पर भेजा जाता है और इसमें ऐसी जानकारी होती है जो उपयोगकर्ता की पहचान करती है। इस इंटरफ़ेस को सेशन ऑब्जेक्ट कहा जाता है।
सत्र ऑब्जेक्ट उपयोगकर्ता सत्र के बारे में जानकारी संग्रहीत करता है, या सेटिंग्स बदलता है।
सत्र ऑब्जेक्ट में संग्रहीत चर एक एकल उपयोगकर्ता के बारे में जानकारी रखते हैं, और एक आवेदन में सभी पृष्ठों के लिए उपलब्ध हैं। सत्र चर में संग्रहीत सामान्य जानकारी नाम, आईडी और प्राथमिकताएं हैं। सर्वर प्रत्येक नए उपयोगकर्ता के लिए एक नया सत्र ऑब्जेक्ट बनाता है, और सत्र समाप्त होने पर सत्र ऑब्जेक्ट को नष्ट कर देता है।
सत्र कब शुरू होता है?
एक सत्र शुरू होता है जब:
- एक नया उपयोगकर्ता ASP फ़ाइल का अनुरोध करता है, और Global.asa फ़ाइल में एक सत्र_ऑनस्टार्ट प्रक्रिया शामिल होती है
- एक मान सत्र चर में संग्रहीत किया जाता है
- एक उपयोगकर्ता ASP फ़ाइल का अनुरोध करता है, और Global.asa फ़ाइल <ऑब्जेक्ट> टैग का उपयोग किसी ऑब्जेक्ट को सत्र स्कोप के साथ इंस्टेंट करने के लिए करती है
सत्र कब समाप्त होता है?
एक सत्र समाप्त होता है यदि किसी उपयोगकर्ता ने एक निर्दिष्ट अवधि के लिए आवेदन में किसी पृष्ठ का अनुरोध या रीफ्रेश नहीं किया है। डिफ़ॉल्ट रूप से, यह 20 मिनट है।
यदि आप एक टाइमआउट अंतराल सेट करना चाहते हैं जो डिफ़ॉल्ट से छोटा या लंबा है, तो टाइमआउट गुण का उपयोग करें।
नीचे दिया गया उदाहरण 5 मिनट का टाइमआउट अंतराल सेट करता है:
<%
Session.Timeout=5
%>
सत्र को तुरंत समाप्त करने के लिए परित्याग विधि का उपयोग करें :
<%
Session.Abandon
%>
नोट: सत्रों के साथ मुख्य समस्या यह है कि उन्हें कब समाप्त होना चाहिए। हम नहीं जानते कि उपयोगकर्ता का अंतिम अनुरोध अंतिम था या नहीं। इसलिए हम नहीं जानते कि हमें कितने समय तक सत्र को "जीवित" रखना चाहिए। एक निष्क्रिय सत्र के लिए बहुत अधिक प्रतीक्षा करने से सर्वर पर संसाधनों का उपयोग होता है, लेकिन यदि सत्र बहुत जल्द हटा दिया जाता है तो उपयोगकर्ता को फिर से शुरू करना पड़ता है क्योंकि सर्वर ने सभी जानकारी हटा दी है। सही टाइमआउट अंतराल ढूँढना मुश्किल हो सकता है!
युक्ति: सत्र चर में केवल छोटी मात्रा में डेटा संग्रहीत करें!
सत्र चर को स्टोर और पुनर्प्राप्त करें
सेशन ऑब्जेक्ट के बारे में सबसे महत्वपूर्ण बात यह है कि आप इसमें वेरिएबल स्टोर कर सकते हैं।
नीचे दिया गया उदाहरण सत्र चर उपयोगकर्ता नाम को "डोनाल्ड डक" और सत्र चर आयु को "50" पर सेट करेगा:
<%
Session("username")="Donald Duck"
Session("age")=50
%>
जब मान को सत्र चर में संग्रहीत किया जाता है तो इसे ASP अनुप्रयोग में किसी भी पृष्ठ से पहुँचा जा सकता है:
Welcome <%Response.Write(Session("username"))%>
उपरोक्त पंक्ति रिटर्न: "आपका स्वागत है डोनाल्ड डक"।
आप उपयोगकर्ता प्राथमिकताओं को सत्र ऑब्जेक्ट में भी संग्रहीत कर सकते हैं, और फिर उस वरीयता तक पहुंच सकते हैं यह चुनने के लिए कि उपयोगकर्ता को कौन सा पृष्ठ वापस करना है।
यदि उपयोगकर्ता का स्क्रीन रिज़ॉल्यूशन कम है, तो नीचे दिया गया उदाहरण पृष्ठ के केवल-पाठ संस्करण को निर्दिष्ट करता है:
<%If Session("screenres")="low" Then%>
This is the text version of the page
<%Else%>
This is the multimedia version of the page
<%End If%>
सत्र चर निकालें
सामग्री संग्रह में सभी सत्र चर शामिल हैं।
निकालें विधि के साथ सत्र चर को हटाना संभव है।
यदि सत्र चर "आयु" का मान 18 से कम है, तो नीचे दिया गया उदाहरण सत्र चर "बिक्री" को हटा देता है:
<%
If Session.Contents("age")<18 then
Session.Contents.Remove("sale")
End If
%>
किसी सत्र में सभी चर निकालने के लिए, RemoveAll विधि का उपयोग करें:
<%
Session.Contents.RemoveAll()
%>
सामग्री संग्रह के माध्यम से लूप
सामग्री संग्रह में सभी सत्र चर शामिल हैं। आप सामग्री संग्रह के माध्यम से लूप कर सकते हैं, यह देखने के लिए कि इसमें क्या संग्रहीत है:
<%
Session("username")="Donald Duck"
Session("age")=50
dim i
For Each i in Session.Contents
Response.Write(i & "<br>")
Next
%>
परिणाम:
username
age
यदि आप सामग्री संग्रह में वस्तुओं की संख्या नहीं जानते हैं, तो आप गणना संपत्ति का उपयोग कर सकते हैं:
<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
Response.Write(Session.Contents(i) & "<br>")
Next
%>
परिणाम:
Session variables: 2
Donald Duck
50
स्टेटिकऑब्जेक्ट्स संग्रह के माध्यम से लूप
सत्र वस्तु में संग्रहीत सभी वस्तुओं के मूल्यों को देखने के लिए, आप StaticObjects संग्रह के माध्यम से लूप कर सकते हैं:
<%
dim i
For Each i in Session.StaticObjects
Response.Write(i & "<br>")
Next
%>