Programlama Katagorisinde ve Asp,Perl,Php,Html Forumunda Bulunan Uygulama Ve Oturum Nesnesi Konusunu Görüntülemektesiniz.=>UYGULAMA VE OTURUM NESNESİ ASP’nin, standart CGI’dan en büyük farkı ve belki de ASP’nin geliştirilmesine sebep olan en büyük unsur, ...
|
|||||||
| Üye ol | Bloglar | Yardım | Üye Listesi | Ajanda | Forumları Okundu Kabul Et |
|
|
#1 (permalink) |
|
Moderator
![]() |
UYGULAMA VE OTURUM NESNESİ ASP’nin, standart CGI’dan en büyük farkı ve belki de ASP’nin geliştirilmesine sebep olan en büyük unsur, CGI’ın yetersiz kaldığı noktalardan biri olan Web Server’ın her bir Web ziyaretçisini oturumunun başından sonuna kadar izleyebilmesi ihtiyacıdır. ASP açısından, bir site “uygulama programı” (Application) sayılır. Her ziyaretçi de bir “oturum” (Session) sayılır. Peki neden ASP ve HTML sayfalarından oluşan site yapısına application deniyor da siteye yapılan her hangi bir ziyaret, session nesnesini gündeme getiriyor? 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 ise ziyaretçinin sitemize girmesinden itibaren izini sürer. Farz edelim 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 tek 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 veritabanına erişmekten tutun, alışverişleri denetlemeye kadar sitede yapılacak bütün işlerin bütün kurallarını bilecek ve uygulayacak. Session nesnesi ise sözgelimi sadece benim alışverişlerimi, tercihlerimi bilecektir. Örnekleri çoğaltmak mümkün. Özellikle üyelik sistemi üzerinden ve ASP tabanlı işletilen sitelerde Session nesnesinin kullanımı elzem bir ihtiyaç halini alıyor. Siteye giren ziyaretçinin üyelik bilgilerini kullanarak kendini tanıtmasının ardından bir çok Session nesnesi devreye girer ve kullanıcı adım adım izlenmeye başlanır. Keza bu tip sitelerde “Log Out” diye bilinen sistemi terketme eylemi sözgelimi <% Session(“Online”)=True %> gibi bir değerin, <% Session(“Online”)=False %> şeklinde değiştirilmesinden ibaret oluyor. Bir dahaki ay bu tip bir sistemi en ince ayrıntılarına kadar inceleyeceğiz. HTML ve JavaScript ile biraz oynadıysanız, bilirsiniz ki bir sayfadan ötekine değişken değeri aktarmak, imkânsı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 hâle 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. 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 (“Fiyat1”) = 675000 bütün Session için geçerli bir “Fiyat1” değişkeni oluşturur ve ona “675000” 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 (“Fiyat1”) = 675000 Bu durumda Fiyat1 değişkeni bütün ziyaretçiler için aynı değere sahip olacaktır. 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ığı takdirde 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. Burada bazen çok işe yarayan bir durum ortaya çıkar. Session nesnesi her oturum açan ziyaretçiye bir numara tayin eder ve bunu “SessionID” özelliğinde saklar. SessionID server tarafından tayin edilir ve sadece okunabilir, değiştirilemez. Şimdi toparlamak amacı ile oturum (Session) nesnesinin bütün bileşenlerini bir tablo halinde görelim. OTURUM KOLEKSİYONLAR • Contents • StaticObjects ÖZELLİKLER • CodePage • LCID • SessionID • Timeout METODLAR • Abondon OLAYLAR • OnStart • OnEnd Bu öğeleri kısaca açıklayalım: • Contents: Script komutları boyunca oturuma eklenmiş elemanların tümünü içerir. • StaticObject: <object> etiketi ile Session’a eklenmiş nesnelerin tamamını içerir. • CodePage: Sembol tasviri için kullanılan kos sayfasını ayarlar. •LCID: Yerel tanımlayıcıyı ayarlar. • Abondon : Bir Session nesnesini ortadan kaldırır ve kaynaklarını boşaltır. Kolları sıvayalım ve bir örnek kod yazalım. Bu yazacağımız ASP ile bütün bu özellikleri bir arada göreceğiz: HTML Kodu:
<html> <head> <title> Session Nesnesi </title> </head> <body> <center> <h2> Session Nesnesi ve Özellikleri </h2> <h3> Session ID : <%=Session.SessionID%> <p> Session TimeOut : <%=Session.TimeOut%> <p> Bu sayfa bu oturumda <%=Session(“intSessionObjVisit”)%> defa ziyaret edildi. <%=Session(“intSessionObjVisit”)= Session(“intSessionObjVisit”)+1%> </h3> </body> </html> 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 programına bir sayaç yerleştirilerek yapılır. Buna güzel bir örnek verelim. Diyelim ki, sayfamızın bir kenarında şu anda sitemize kaç kişinin bağlı olduğunu yazmak istiyoruz. Tecrübeyle biliyorsunuz ki, bu işlem hem kolay hem de etkileyicidir. Fakat tecrübe etmediyseniz ve “Bunun bize ne yararı olacak?” diyorsanız, ziyaretçi o siteye ne kadar ilgi olduğunu görebilir ve kendisi ile beraber sitede kaç kişi olduğunu bilebilir derim. Global.asa dosyasında, ziyaretçi Web sitenize eriştiğinde ilk önce ne yapılacağını belirtebiliriz. Biz de bu özellikten faydalanarak dosya içerisine basit bir sayaç yerleştireceğiz. Çalışma mantığı oldukça basit. Server ‘da her yeni Session (oturum) açılışında sayaç bir artırılacak, her oturum kapanışında sayaç bir azaltılarak sonuç kullanıcılara yansıtılacak. Eğer Web Server’ınızın kök dizinindeki global.asa dosyasını bir editörle açarsanız muhtemelen şöyle bir görüntü ile karşılaşacaksınız. Kod:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
</SCRIPT>
Şimdi bu dosyanın içeriğini aşağıdaki gibi değiştirelim.
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
Application("online") = 0
End Sub
Sub Application_OnEnd
End Sub
Sub Session_OnStart
Session.Timeout = 5
Session("Start") = Now
Application.lock
Application("online") = Application("online") + 1
'Her yeni ziyaretçi girişinde sayaç bir artmış oldu.
Application.unlock
End Sub
Sub Session_OnEnd
Application.lock
Application("online") = Application("online") - 1
'Her ziyaretçi çıkışında sayaç bir azalmış oldu.
Application.unlock
End Sub
</SCRIPT>
Kod:
<center>
Sitemizde şu anda <b><%=Application("online")%><b>
ziyaretçi var. </center>
__________________
Talking's not always the best thing. |
|
|
|
| Sponsor Linkler | |
|
|
|
![]() |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) |
|
| Seçenekler | |
| Stil | |
|
|
|
||||
| Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
| Karşılık (response) Nesnesi | morejderha | Asp,Perl,Php,Html | 0 | 21-02-2008 10:51 |
| Sertifika Nesnesi | morejderha | Asp,Perl,Php,Html | 0 | 21-02-2008 10:50 |
| SqlCommand Nesnesi: | pReNsEs | C# | 0 | 25-07-2007 17:57 |
| MSN’DE Çevrim Dışı Oturum Açanları Anlayabilirsiniz | bozkurt | Msn,Icq,Yahoo Messenger Yardım | 1 | 26-01-2007 19:53 |
| Bilgisayarınızda Oturum Açılan Tüm Hesapların Bilgileri | pckral | Msn,Icq,Yahoo Messenger Yardım | 0 | 04-12-2006 19:05 |
Gizlilik Politikası | KooLpa üyeleri onay gerektirmeksizin mesaj yazabilmektedir. KooLpa' da yasalara aykırı unsurlar bulursanız buraya yazınız. En kısa zamanda gereği yapılacaktır.