|
Sunucu (Server)
Nesneleri Uygulama
(Application) ve Oturum (Session) Nesnesi
ASP'nin varlık sebebi, standart CGI'ın yetersiz kaldığı
noktalardan biri olan Web Server'ın her bir Web ziyaretçiyi
oturumunun başından sonuna izleyebilmesi içindir, dersek durumu
abartmış olmayız. ASP açısından, bir site "uygulama programı"
(Application) sayılır. Her ziyaretçi de bir "oturum"
(Session) sayılır. Bir takım ASP ve HTML sayfalarından oluşan
bildiğimiz Site'ye application, her hangi bir ziyarete de
session denmesinin sebebi nedir? Bunu her iki nesnenin
işlevleri ile açıklayabiliriz.
Application nesnesi, sitenin tümüyle ilgili bilgileri
(değişkenleri, nesneleri ve metodları) tutar; Session nesnesi
ziyaretçinin sitemize girmesinden itibaren izini sürer. Diyelim ki
bir borsa sitesi yaptınız; ziyaretçileriniz gelerek, satışa sunulan
hisse senetlerinin değerlendirmelerini okuyacak ve size "Şu, şu
hisse senetleri al!" diye talimat bırakacak. Bütün
ziyaretçilerinizin erişeceği sadece bir veritabanınız var; buna
karşılık her bir ziyaretçinin yapacağı farklı tercihler, vereceği
farklı kararlar olacaktır. Application nesnesi, sitenizle
(artık site yerine Web Uygulama Programı desek de ağzımız alışmaya
başlasa!) veritabanına erişmekten tutun, alışverişlerie kadar sitede
yapılacak bütün işlerin bütün kurallarını bilecek ve uygulayacak;
Session nesnesi ise sözgelimi benim alışverişlerimi,
tercihlerimi bilecektir.
HTML ve Javascript ile biraz oynadıysanız, bilirsiniz ki bir
sayfadan ötekine değişken değeri aktarmak, imkansıza yakın derecede
zordur. Değişkenlerin ömrü, fonksiyonla sınırlıdır. Bir ASP
sayfasında herhangi bir değişkeni fonksiyon dışında tanımlamakla ve
değer atamakla onu bütün fonksiyonlar için geçerli hale
getirebiliriz. Fakat kimi zaman isteriz ki, bir fonksiyonun değeri
bütün sayfalarda aynı olsun; ziyaretçinin sayfa değiştirmesi ile
değişkenin değeri değişmesin. Bunu ASP'de yapmak çok kolaydır.
ASP'de bu zorluğu yenebilmek için değişkenlerimizi Session
nesnesi için oluşturabiliriz; ve bu değer ziyaretçinin oturumu
boyunca devam eder; bütün ASP sayfalarındaki bütün Fonksiyonlar
tarafından bilinebilir. Örneğin:
|
|
Session ("Tupras") =
44500 |
bütün Session için geçerli bir Tupras değişkeni oluşturur
ve ona "44500" değerini atar. Kimi zaman, değişkenin çok daha geniş
kapsamlı olmasını, yani ömrünün Session ile değil bütün
Application boyunca belirli olmasını isteyebiliriz. O zaman
bu değişkeni Application düzeyinde tanımlayabiliriz:
|
|
Application ("Tupras") =
44500 |
Bu durumda Tupras değişkeni bütün ziyaretçiler için aynı değere
sahip olacakatır.
Session nesnesinin oluşabilmesi için, ziyaretçiye mutlaka
bir Cookie göndererek, sitemizde (hani "Uygulama Programı"
diyecektik?) bir işaret vermemiz gerekir. Daha önce, HTTP ile
kurduğumuz bağlantı, belirsiz durum bağlantısıdır demiştik. Bu,
Server'ın bir ziyaretçiye arzu ettiği sayfayı gönderdikten sonra,
onu alıp almadığını, o sayfada ne tercihler yaptığını bilmemesi
demektir. Oysa, ziyaretçiye sitemize bağlandığı anda bir
Session kimliği verirsek ve her yeni sayfa talebinde bu
kimliği kontrol edersek, kimin hangi oturumunu sürdürdüğünü biliriz.
ASP-uyumlu bir Web Server, ziyaretçi yeni bir tercih yapmadığı
taktirde her Session nesnesini 20 dakika açık tutar; sonra
siler. Bu süreyi Session nesnesinin Timeout özelliği
yoluyla değiştirebilirsiniz. Session belirleyen Cookie
ASP-uyumlu Web Server tarafından otomatik olarak gönderilir ve takip
edilir; tasarımcı olarak bizim bu konuda bir şey yapmamız gerekmez.
Bir Web programınıza aynı anda kaç kişi ulaşırsa (yani
sayfalarınızı kaç kişi talep ederse), o kadar Session nesnesi
oluşur; fakat siteniz bir adet olduğuna göre bir adet
Application nesnesi vardır. Bu nesnenin bütün
Session'lar için sitemizin ihtiyaçlarına uygun ve aynı
uygulama kurallarına sahip olmasını sağlayan bir dosya vardır:
Global.asa. Bu dosya PWS veya IIS kurulurken oluşturulur. ASP
ile Web programlarınızı, örneğin MS Visual Studio ile
oluşturuyorsanız, program sizin için seçtiğiniz dizinde bir
Global.asa dosyası oluşturacaktır. Bu dosyada, çoğu zaman,
sitemize ilk ziyaretçinin gelmesiyle oluşan
Application_OnStart ve son ziyaretçinin çıkmasıyla oluşan
Application_OnEnd ile herhangi bir ziyaretçinin bir sayfaya
erişmesiyle oluşan Session_OnStart ve ziyaretçinin sitemizden
çıkması ile oluşan Session_OnEnd olayları halinde ne
yapılacağı yazılıdır. Bu dosyanın içeriği standart bir ASP dosyasına
benzemekle birlikte adındaki uzatmanın .asp değil de
.asa olmasının sebebi, dosyanın Active Server
Application dosyası olmasıdır. ASP-uyumlu bir Web Server
programı sitemize ulaşan ilk ziyaretçiyi gördüğü anda
Global.asa dosyasını çalıştırır.
Application ve Session nesnelerin kendi başlarına
en çok kullanıldığı yer, sitemize gelen ziyaretçilerin sayısını
(sitemizin aldığı Hit sayısını) tutmasını sağlamaktır. Bu genellikle
Global.asa pogramına bir sayaç yerleştirilerek yapılır.
|