Objek Session ASP

Objek Session digunakan untuk menyimpan informasi pengguna. Variabel yang disimpan di objek session menahan informasi pengguna tunggal dan tersedia untuk semua halaman dalam aplikasi.

Objek Session

Ketika Anda melakukan operasi aplikasi yang satu, Anda membuka, membuat perubahan, dan kemudian menutupnya. Ini seperti suatu percakapan (Session). Komputer tahu siapa Anda. Dia mengetahui kapan Anda membuka dan menutup aplikasi. Tetapi ada masalah di Internet: karena alamat HTTP tidak dapat mempertahankan keadaan, server web tidak tahu siapa Anda dan apa yang Anda lakukan.

ASP memecahkan masalah ini dengan cara membuat cookie unik untuk setiap pengguna. Cookie ini dikirim ke klien, berisi informasi yang dapat mengidentifikasi pengguna. Antarmuka ini disebut Objek Session.

Objek Session digunakan untuk menyimpan informasi tentang pengguna, atau untuk mengubah pengaturan session pengguna. Variabel yang disimpan di objek Session hanya berisi informasi pengguna tunggal dan dapat diakses di semua halaman aplikasi. Informasi yang disimpan di objek Session biasanya adalah name, id, dan parameter. Server akan membuat Session baru untuk setiap pengguna baru dan membatalkan objek Session ini saat Session habis masa berlaku.

Kapan session dimulai?

Session dimulai:

  • Ketika pengguna baru meminta file ASP dan file Global.asa merujuk ke subprogram Session_OnStart;
  • Ketika nilai disimpan di variabel Session;
  • Ketika pengguna meminta file ASP dan Global.asa menggunakan tag <object> untuk menginstansiasi objek melalui scope session;

Kapan session berakhir?

Jika pengguna tidak meminta atau meng刷新 halaman di dalam aplikasi dalam waktu yang ditentukan, session akan berakhir. Nilai defaultnya adalah 20 menit.

Jika Anda ingin menetapkan waktu timeout yang lebih lama atau lebih pendek, dapat disetel Timeout Properti.

Contoh di bawah ini menetapkan waktu timeout selama 5 menit:

<%
Session.Timeout=5
%>

Untuk mengakhiri session segera, dapat digunakan Abandon Metode:

<%
Session.Abandon
%>

Perhatian:Masalah utama saat menggunakan session adalah kapan mereka harus berakhir. Kita tidak tahu apakah permintaan terakhir pengguna adalah permintaan terakhir. Jadi kita tidak tahu berapa lama session harus "berlanjut hidup". Menunggu session yang kosong terlalu lama akan menghabiskan sumber daya server. Namun jika session dihapus terlalu awal, pengguna harus mulai kembali dari awal, karena server telah menghapus semua informasi. Mencari interval waktu timeout yang tepat sangat sulit.

Petunjuk:Jika Anda menggunakan variabel session, jangan simpan data yang berat di dalamnya.

Menyimpan dan mengambil variabel session

Pertimbangan utama objek Session adalah dapat menyimpan variabel untuk diakses halaman web berikutnya, area penggunaannya sangat luas.

Contoh di bawah ini menetapkan "Donald Duck" ke variabel session yang dinamai username, dan menetapkan "50" ke variabel session yang dinamai age:

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

Sekali nilai disimpan di variabel session, ia dapat digunakan oleh setiap halaman di aplikasi ASP:

Selamat datang <%Response.Write(Session("username"))%>

Hasil baris program di atas adalah: "Selamat datang Donald Duck".

Juga dapat menyimpan parameter pengguna di objek sesi dan memutuskan halaman yang akan dikembalikan kepada pengguna melalui akses parameter ini.

Dalam contoh di bawah, jika resolusi layar pengguna rendah, kembalikan versi halaman teks:

<%If Session("screenres")="low" Then%> 
  Ini adalah versi teks halaman ini
<%Else%> 
  Ini adalah versi multimedia halaman ini
<%End If%>

Hapus variabel sesi

Koleksi contents mengandung semua variabel sesi.

Anda dapat menghapus variabel sesi dengan metode remove.

Dalam contoh di bawah, jika nilai variabel sesi "umur" kurang dari 18, hapus variabel sesi "sale":

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

Jika Anda ingin menghapus semua variabel di sesi, gunakan metode RemoveAll:

<%
Session.Contents.RemoveAll()
%>

Mengelilingi koleksi contents

Koleksi contents mengandung semua variabel sesi. Anda dapat melihat variabel yang disimpan di dalamnya dengan mengelilingi koleksi contents:

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

Hasil:

username
umur

Jika Anda ingin mengetahui jumlah item dalam koleksi contents, Anda dapat menggunakan properti count:

<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Variabel sesi: " & j)
Untuk i=1 sampai j
  Response.Write(Session.Contents(i) & "<br />")
Next
%>

Hasil:

Variabel sesi: 2
Donald Duck
50

Mengelilingi koleksi StaticObjects

Dapat melalui pengulangan koleksi StaticObjects untuk melihat nilai semua objek yang disimpan di objek session:

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