เป้าหมาย Session ASP

Session অবজেক্টটি ব্যবহার করা হয় ব্যবহারকারীর তথ্য সংরক্ষণের জন্য। Session অবজেক্টে সংরক্ষিত বিন্যাসগুলি একটি ব্যবহারকারীর তথ্য ধারণ করে, এবং একই অ্যাপ্লিকেশনের সকল পাতাতেই উপলব্ধ হয়。

Session অবজেক্ট

যখন আপনি কোনও অ্যাপ্লিকেশনটি ব্যবহার করেন, তখন আপনি তা খুলে, কিছু পরিবর্তন করেন এবং তা বন্ধ করেন। এটা একটি আলোচনা (Session) মতো। কম্পিউটার জানে আপনি কোথা। তা জানে কোথা থেকে এবং কোথা পর্যন্ত অ্যাপ্লিকেশনটি খুলেছে এবং বন্ধ হয়েছে। কিন্তু ইন্টারনেটে একটি সমস্যা আছে: HTTP এড্রেসটি অবস্থা সংরক্ষণ করতে পারে না, তাই ওয়েব সার্ভার আপনাকে কোথা থেকে এসেছে এবং আপনি কী করেছেন তাও জানতে পারে না。

ASP এই সমস্যা সমাধান করেছে, যার মাধ্যমে প্রত্যেক ব্যবহারকারীর জন্য একটি অভিন্ন কুকি তৈরি করা হয়। কুকি ক্লায়েন্টে পাঠানো হয়, যাতে ব্যবহারকারীকে পরিচিত করা তথ্য থাকে। এই ইন্টারফেসকে Session অবজেক্ট বলা হয়。

সেশন অবজেক্টটি ব্যবহার করা হয় যেমন, ব্যবহারকারীর তথ্য সংরক্ষণ করা হয়, বা একজন ব্যবহারকারীর session পরিবর্তন সংযোজন করা হয়। সেশন অবজেক্টে সংরক্ষিত ভেক্টরগুলি একক ব্যবহারকারীর তথ্য ধারণ করে, এবং অ্যাপ্লিকেশনের সমস্ত পৃষ্ঠায় ব্যবহার করা যায়। সেশন অবজেক্টে সংরক্ষিত তথ্যটি সাধারণত name, id এবং পারামিটার। সার্ভার প্রত্যেক নতুন ব্যবহারকারীর জন্য একটি নতুন Session তৈরি করে, এবং session মেয়াদ পূর্ণ হলে সেশন অবজেক্টটি পুনরায় বাতিল করে।

সেশন কবে শুরু হয়?

সেশন কবে শুরু হয়?

  • যখন একজন নতুন ব্যবহারকারী একটি এসপি ফাইল অনুরোধ করে, এবং Global.asa ফাইলটি Session_OnStart সাব-রুটিনটি উল্লেখ করে;
  • যখন কোনও মান সেশন ভেক্টরে সংরক্ষিত হয়;
  • যখন একজন ব্যবহারকারী একটি এসপি ফাইল অনুরোধ করে, এবং Global.asa ট্যাগ দ্বারা session স্কোপ দ্বারা কোনও অবজেক্টকে প্রদর্শিত করে;

সেশন কবে সমাপ্ত হয়?

যদি ব্যবহারকারী নির্ধারিত সময়ের মধ্যে অ্যাপ্লিকেশনের মধ্যে কোনও অনুরোধ করেন বা পৃষ্ঠা নতৃত্ব করেন না, তবে সেশন সমাপ্ত হবে। ডিফল্ট মান ২০ মিনিট।

যদি আপনি সময়সীমা সময়কে আরও বেশি বা কম করতে চান, তবে সময়সীমা সময়কে নির্ধারণ করতে পারেন: সময়সীমা বৈশিষ্ট্য

নিচের উদাহরণটি ৫ মিনিট সময়সীমা নির্ধারণ করে:

<%
সেশনসময়সীমা=5
%>

সেশনটি তাৎক্ষণিকভাবে সমাপ্ত করতে, ব্যবহার করুন: ত্যাগ পদ্ধতি:

<%
সেশনত্যাগ
%>

ধ্যান দিন:সেশন ব্যবহারের সময় প্রধান সমস্যা হল যে, কবে তা সমাপ্ত হবে। আমরা জানতে পারব না যে, ব্যবহারকারীর সর্বশেষ অনুরোধটি শেষ অনুরোধ কি নয়। তাই, আমরা জানতে পারব না যে, সেশনটি কত সময় চলবে। একটি স্থগিত সেশনটির জন্য অধিক সময় অপেক্ষা করা সার্ভারের সম্পদকে ব্যয় করতে পারে। কিন্তু, যদি সেশনটি প্রত্যাহার করা হয়, তবে ব্যবহারকারীকে পুনরায় পুনরায় শুরু করতে হবে, কারণ সার্ভার সমস্ত তথ্য মুছে ফেলেছে। উপযুক্ত মেয়াদ সময় নির্ধারণ করা কঠিন।

সুঝানা:আপনি যদি সেশন ভেক্টর ব্যবহার করছেন, তবে তাতে বেশি তথ্য সংরক্ষণ না করুন。

সেশন ভেক্টর সংরক্ষণ ও পুনরুদ্ধার

সেশন অবজেক্টের সর্ববৃহৎ সুবিধা হল যে, এতে ভেক্টর সংরক্ষিত করা যায়, যা পরবর্তীতে ওয়েব পৃষ্ঠা দ্বারা পড়া যায়, এর প্রয়োগ ক্ষেত্রটি বিস্তৃত।

নিচের উদাহরণ "Donald Duck"-কে username নামক সেশন ভেক্টরে এবং "50"-কে age নামক সেশন ভেক্টরে সংরক্ষিত করে:

<%
Session("username")="Donald Duck"
Session("age")=50
%>

যখন একটি মান সেশন ভেক্টরে সংরক্ষিত হয়, তখন এটি এসপি অ্যাপ্লিকেশনের কোনও পৃষ্ঠা দ্বারা ব্যবহার করা যায়:

Welcome <%Response.Write(Session("username"))%>

上面这行程序返回的结果是: "Welcome Donald Duck"。

也可以在 session 对象中保存用户参数,然后通过访问这些参数来决定向用户返回什么页面。

下面的例子规定,假如用户使用低显示器分辨率,则返回纯文本版本的页面:

<%If Session("screenres")="low" Then%> 
  This is the text version of the page
<%Else%> 
  This is the multimedia version of the page
<%End If%>

移除 session 变量

contents 集合包含所有的 session 变量。

可通过 remove 方法来移除 session 变量。

在下面的例子中,假如 session 变量 "age" 的值小于 18,则移除 session 变量 "sale":

<%
If Session.Contents("age")<18 then 
  Session.Contents.Remove("sale")
End If 
%>

如需移除 session 中的所有变量,请使用 RemoveAll 方法:

<%
Session.Contents.RemoveAll()
%>

遍历 contents 集合

contents 集合包含所有的 session 变量。可通过遍历 contents 集合,来查看其中存储的变量:

<%
Session("username")="Donald Duck"
Session("age")=50
dim i
For Each i in Session.Contents
  Response.Write(i & "<br />")
Next
%>

রেজাল্ট:

username
age

যদি contents সংকলনের আইটেমস সংখ্যা জানতে হয়, তবে count এটিউটমেন্ট ব্যবহার করুন:

<%
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 มาดูค่าของทุกตัวแปรที่เก็บไว้ในเป้าหมาย session

สามารถเลือกคลอดมายังตัวแปร StaticObjects มาดูค่าของทุกตัวแปรที่เก็บไว้ในเป้าหมาย session ได้

<%
dim i
For Each i in Session.StaticObjects
  Response.Write(i & "<br />")
Next
%>