ASP Session Nesnesi
- Önceki Sayfa ASP Çerezleri
- Sonraki Sayfa ASP Uygulaması
Session nesnesi, kullanıcı bilgilerini saklamak için kullanılır. Session nesnesinde tutulan değişkenler, tek bir kullanıcıyı tutar ve bir uygulamanın tüm sayfalarında kullanılabilir.
Session nesnesi
Bir uygulamanı kullanırken, onu açarsınız, bazı değişiklikler yaparsınız ve kapatırsınız. Bu, bir konuşma (Session) gibi. Bilgisayar kim olduğunuzu biliyor. Uygulamanın ne zaman açıldığını ve kapatıldığını biliyor. Ancak İnternet'te bir sorun var: HTTP adresinin durumu tutamadığı için web sunucusu kim olduğunuzu ve ne yaptığınızı bilmiyor.
ASP, her her kullanıcıya benzersiz bir cookie oluşturarak bu sorunu çözer. Cookie, istemciye gönderilir ve kullanıcıyı tanımlayan bilgileri içerir. Bu arayüz Session nesnesi olarak adlandırılır.
Session nesnesi, kullanıcı hakkında bilgi depolamak veya bir kullanıcının session ayarlarını değiştirmek için kullanılır. Session nesnesinde depolanan değişkenler, tek bir kullanıcı hakkında bilgi içerir ve uygulamanın tüm sayfaları için kullanılabilir. Session nesnesinde depolanan bilgiler genellikle name, id ve parametrelerdir. Sunucu, her yeni kullanıcı için yeni bir Session oluşturur ve session süresi dolduğunda bu Session nesnesini iptal eder.
Session ne zaman başlar?
Session ne zaman başlar?
- Yeni bir kullanıcı bir ASP dosyasını talep ettiğinde ve Global.asa dosyası Session_OnStart alt programını çağırıldığında;
- Bir değer Session değişkenine kaydedildiğinde;
- Bir kullanıcı bir ASP dosyasını talep ettiğinde ve Global.asa, session kapsamını <object> etiketi aracılığıyla bir nesne örneklemek için kullanıldığında;
Session ne zaman sona erer?
Kullanıcı belirli bir süre içinde uygulama içinde talep veya sayfa yenilemesi yapmadığında, session sona erer. Varsayılan değer 20 dakikadır.
Eğer zaman aşımı süresini daha uzun veya daha kısa ayarlamanı istiyorsanız, Timeout Özellikleri.
Aşağıdaki örnekte 5 dakikalık zaman aşımı süresi ayarlanır:
<% Session.Timeout=5 %>
Sessionu hemen sonlandırmak için Abandon Yöntem:
<% Session.Abandon %>
Dikkat:Session kullanırken en büyük sorun, ne zaman sona ereceğidir. Kullanıcının en son talebinin son talep olup olmadığını bilmeyiz. Bu nedenle session ne kadar süre "yaşayacak" konusunda belirsiziz. Uzun süreli boş session bekleme, sunucunun kaynaklarını tüketebilir. Ancak session erken kaldırıldığında, kullanıcılar her seferinde yeniden başlamak zorunda kalabilir, çünkü sunucu tüm bilgileri sildi. Uygun zaman aşımı süresini bulmak oldukça zordur.
İpucu:Session değişkenleri kullanıyorsanız, içinde büyük miktarda veri saklamakten kaçının.
Session değişkenlerini saklama ve geri alma
Session nesnesinin en büyük avantajı, sonraki web sayfalarının okuyabileceği değişkenleri depolamaktır, bu uygulama alanı oldukça geniştir.
Aşağıdaki örnekte "Donald Duck" adlı session değişkenine atanır ve "50" adlı session değişkenine atanır:
<% Session("kullanıcı_adı")="Donald Duck" Session("yaş")=50 %>
Bir değer session değişkenine kaydedildiğinde,ASP uygulamasındaki herhangi bir sayfa tarafından kullanılabilir hale gelir:
Hoş geldin <%Response.Write(Session("kullanıcı_adı"))%>
Bu satırın döndürdüğü sonuç: "Hoş geldin Donald Duck".
Ayrıca, kullanıcı parametrelerini session nesnesinde saklayabilir ve bu parametreleri erişerek kullanıcıya hangi sayfayı döndürüleceğine karar verebilirsiniz。
Aşağıdaki örnekte, kullanıcı düşük ekran çözünürlüğü kullanıyorsa temiz metin sürümü sayfası döndürülür:
<%If Session("screenres")="low" Then%> Bu, sayfanın metin sürümüdür <%Else%> Bu, sayfanın multimedya sürümüdür <%End If%>
Oturum değişkenini kaldırın
Contents koleksiyonu tüm oturum değişkenlerini içerir。
Session değişkenini kaldırmak için remove yöntemini kullanabilirsiniz。
Aşağıdaki örnekte, eğer session değişkeni "yaş" değerinin 18'den küçük olduğuna inanıyorsanız, session değişkeni "sale" kaldırın:
<% If Session.Contents("yaş")<18 then Session.Contents.Remove("sale") End If %>
Oturumdan tüm değişkenleri kaldırmak için RemoveAll yöntemini kullanın:
<% Session.Contents.RemoveAll() %>
Contents koleksiyonunu tarayın
Contents koleksiyonu tüm oturum değişkenlerini içerir. Koleksiyonu tarayarak içinde saklanan değişkenleri görebilirsiniz:
<% Session("kullanıcı_adı")="Donald Duck" Session("yaş")=50 dim i For Each i in Session.Contents Response.Write(i & "<br />") Next %>
Sonuç:
kullanıcı_adı yaş
Eğer contents koleksiyonundaki öğe sayısını öğrenmek istiyorsanız, count özelliğini kullanabilirsiniz:
<% dim i dim j j=Session.Contents.Count Response.Write("Oturum değişkenleri: " & j) For i=1 to j Response.Write(Session.Contents(i) & "<br />") Next %>
Sonuç:
Oturum değişkenleri: 2 Donald Duck 50
StaticObjects koleksiyonunu dolaşma
StaticObjects koleksiyonunu dolaşarak session nesnesinde depolanan tüm nesnelerin değerlerini görebilirsiniz:
<% dim i For Each i in Session.StaticObjects Response.Write(i & "<br />") Next %>
- Önceki Sayfa ASP Çerezleri
- Sonraki Sayfa ASP Uygulaması