Objek Sesi ASP
- Halaman Sebelumnya Cookies ASP
- Halaman Berikutnya Aplikasi ASP
Session 对象用于存储用户的信息。存储于 session 对象中的变量持有单一用户的信息,并且对于一个应用程序中的所有页面都是可用的。
Session 对象
当时您操作某个应用程序时,您打开它,做些改变,然后将它关闭。这很像一次对话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。但是在因特网上有一个问题:由于 HTTP 地址无法存留状态,web 服务器并不知道您是谁以及您做了什么。
ASP 通过为每位用户创建一个唯一的 cookie 的方式解决了这个问题。cookie 被传送至客户端,它含有可识别用户的信息。这种接口被称作 Session 对象。
Objek Session digunakan untuk menyimpan maklumat tentang pengguna, atau untuk mengubah tetapan session pengguna. Pembolehubah yang disimpan di objek Session mempunyai maklumat tentang pengguna tunggal, dan boleh digunakan di semua halaman aplikasi. Maklumat yang disimpan di objek Session biasanya adalah name, id serta parameter. Pelayan akan membuat Session baru untuk setiap pengguna baru, dan membatalkan objek Session ini apabila Session berakhir.
Kapan session bermula?
Session bermula:
- Ketika pengguna baru membuat permintaan kepada fail ASP, dan fail Global.asa merujuk ke subprogram Session_OnStart;
- Ketika nilai disimpan di pembolehubah Session;
- Ketika pengguna membuat permintaan kepada fail ASP, dan Global.asa menggunakan tag <object> untuk menggambarkan objek melalui scope session;
Kapan session berakhir?
Jika pengguna tidak membuat permintaan atau mengemas kini halaman di dalam aplikasi dalam masa yang ditetapkan, session akan berakhir. Nilai lalai adalah 20 minit.
Jika anda mahu menetapkan masa lepas yang lebih lama atau lebih pendek, boleh diatur Timeout Aturan.
Contoh di bawah ini menetapkan masa lepas 5 minit:
<% Session.Timeout=5 %>
Untuk mengakhiri session segera, boleh digunakan Abandon Cara:
<% Session.Abandon %>
Perhatian:Masalah utama yang dihadapi semasa menggunakan session adalah apabila mereka seharusnya berakhir. Kita tidak tahu jika permintaan terakhir pengguna adalah permintaan terakhir. Oleh itu, kita tidak tahu berapa lama session seharusnya "duduk" hidup. Menunggu session yang lembut untuk masa yang lama akan menghabiskan sumber pelayan. Walau bagaimanapun, jika session dihapus terlalu awal, pengguna mesti mulai semula sekali lagi, kerana semua maklumat telah dihapuskan pelayan. Mencari masa lepas yang sesuai adalah sukar.
Pengumuman:Jiakapun anda mengguna pembolehubah session, jangan simpan data yang berlebihan didalamnya.
Simpan dan cari kembali pembolehubah session
Kemajuan utama objek Session adalah boleh disimpan pembolehubah untuk di baca laman web berikutnya, kawasan penggunaannya adalah yang luas.
Contoh di bawah ini menugaskan "Donald Duck" kepada pembolehubah session bernama username, dan menugaskan "50" kepada pembolehubah session bernama age:
<% Session("username")="Donald Duck" Session("age")=50 %>
Sekiranya nilai disimpan di pembolehubah session, ia boleh digunakan oleh mana-mana halaman aplikasi ASP:
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
Mengelilingi penghimpunan StaticObjects
Dapat melacak penghimpunan StaticObjects untuk melihat nilai semua objek disimpan dalam objek session:
<% dim i For Each i in Session.StaticObjects Response.Write(i & "<br />") Next %>
- Halaman Sebelumnya Cookies ASP
- Halaman Berikutnya Aplikasi ASP