Response objesi hakkında herşey...
anasayfa » visual basic makaleleri » Response objesi hakkında herşey...
Yayın № : 6080
Yazar : osmanozturk
Asp bilindiği üzere server da çalıştırılan kodların web sayfasında kullanıcıya gönderilmesi teknolojisi. Ama gerçekten güzel ve değerli bir teknolojiki su anda bir çok insan bu konuda yeni yazılımlar geliştiriyor. Senininde ASP de yeni sayfalar oluşturman için elinde büyük bir koz var oda Visual Basic bilmen. Tabi full bir Basic kodlaması yapmıyorsun ama Basic için bildiğin coğu yapı taşı ASP' de mevcut. Farki yaratan kodlarsa çabuk bir şekilde öğrenilebilir. İşte sana onlardan birisini bu makalede sunacağım. Bu makalenin konusu Response olacak.
Responsenin ne işe yaradığını anlayabilmen için sana biraz web sayfalarının çalışma mantıklarından bahsedeyim; Web sayfaları internet ortamında bir bilgisayar da bulunan birer text dosyalarından ibarettir. Bu dosyalar doğru editör tarafından açıldığında mantıklı hale gelir. Hemen bunu örneklemek gerekirse bu sayfa üzerinde mouse'unun sağ tuşuna tıkla ve çıkan menüden "kaynağı görüntüle" (View Source ) seç. Karşına çıkan notpad teki dosya işte bu web sayfası. Bu yazıları senin Browser'ın aldığında ise bu yazılar bir anlam ifade etmeye yani bu sayfayı oluşturmaya başlıyor. İşte bu durumda bir kod yazarının yapabileceği dinamik uygulamalarda iki seceneği kalıyor. Ya bu web sayfası kullanıcıya gittikten sonra web sayfası üzerinde değişiklik yapacağı kodları yazacak. Veya ilk baştan sayfa daha kullanıcıya gitmeden önce bu web sayfasını düzenleyecek ve kullanıcıya özel hale getirecek. Tabi bu durumda 1. ihtimal biraz riskli çünkü kullanıcı bu işleme müdahale edebilir. 2. yol ise , işte o yol ASP ki bizimde konumuz bu yol. Yani kullanıcıya özel olarak oluşturulan sayfalar. Bunu yapman için ASP'den çıkan yazıları web sayfasının içine yazarak kullanıcıya normal bir web sayfasıymışcasına göndermek. Şindi asıl konumuza dönecek olursam, iste bu Response komutu ile ASP den gelen bilgilerin web sayfasının içinde gözükmesini sağlıyor.
Kod ekranı <HTML>
Ekran çıktısı 10
Örnekte gördüğün response objesinin write metodu ile ekrana bir işlem sonucunun yazılması
Response Objesinin kendisine ayit bir tane koleksiyonu var onda cookie koleksiyonu ve genel kullanımı aşağıdaki gibi;
<% Response.Cookies([cookie adı]) = [değeri] %>
Not: Cookie ile ilgili daha fazla bilgi için Cumhur Bey'in bu konudaki başarılı makalesini okuyabilirsiniz.
ASP kullanım mantığı olarak response objesini gördüğü anda o anki işleminin sonucunu direk kullanıcıya gönderir. Sen eğer sayfanın daha sonraki aşamalarında yapılacak bir işlemin sonucunda sayfanın görüntüsüyle ilgi bir karar vericekseniz bu değeri ture yaparak sayfanın bitimde ancak kullanıcıya göndermesini sağlayabilirsiniz.
Değiştirilmedikçe buffer özelliğinin değeri false dir. Genel kullanımı ise
True degerini alırsa sayfayı hafızada saklar ve bitiminde gönderir.
False degerini alırsa response'yi direk kullanıcıya gönderir.
Ayrıca response.end ve response.flush metodlarınıda kullanabilmen için buffer özelliğini ture olarak ayarlaman gerekmektedir.
Proxy server'lardaki ASP'nin buffer özelliğini tanımlar.
Web sayfalarının hangi dilde gösterilmesi gerektiğini statik web sayfalarında meta tag'ında tanımlarken ASP'de bu tanımlama yapılmak istenirsen bu özellik kullanmalısın;
web sayfalarında Türkçe tanımlaması;
olarak yapılırken ASP de ise;
Bilgisayarında bir dosyanın hangi program kullanarak açılacağını o dosya türünün MIME ayarınına bakılarak karar verilir. Her dosyanın kendisine göre bir mime'si vardır ve bu mime ye göre programlarla açılır. İşte bu mime ayarını ASP de contentType ile yapabilirsin. Bir web sayfasının default mime'si text/HTML 'dir ve sen bu sayfayı çağırdığında bilgisayarın bu dosyanın web sayfası olduğunu burdan anlar. Kullanımı;
<% Response.contentType("[Mime tipi]") %>
Örnek: Database'nizdeki bir binary alandan bir JPG dosyasını alıp web sayfasına yazdırmadan önce eğer contentType'ı image/JPEG olarak ayarlarsanız resmi sağlıklı bir şekilde görüntüleyebilirsiniz.
Kullanıcı browserlarında bazı sayfalar sonraki kullanımlarında çabuk açılması için saklanır. Expires degeriyle bu sayfanın kullanıcı browser'ındaki cache'de nekadar zaman saklanacağını belirleyebilirsin. Eğer deger sıfır girilirse sayfa cache'de hiç saklanmaz. Kullanımı;
<% Response.expires=[sayı] %>
Expires'in mantığıyla tamamen aynıdır. Kullanımda ise farklılık olarak absolete'de girek bir gün ve saat verilir. kullanımı:
<% response.expiresAbsolute= [tarih zaman] %>
Örnek:<% response.expiresAbsolute= #Jul 29,2001 17:47:35# %>
Bu özellikle sayfa server'da oluşturulurken bu sayfayı talep eden kullanıcının hala bağlantısının devam edip etmediğini ögrenebilirsin.
dönen değer True veya false dir.
response.write "Bağlı değil"
Web serverlarda oluşan hatalara karşılık gelen bir hata numarası vardır.(404, 401, 550 gibi) Ve oluşan her hataya numarasına göre bir hata sayfası kullanıcıda açılır.( Web sayfası bulunamadı, isleminiz iptal edilidi. bu sayfayı görmeye yetkiniz yok gibi...) Eğer web sayfasında oluşan bir değerlendirme sonrası kullanıcıya bu hata sayfalarından birisi gönderilmesi gerekiyorsa bu özelliği kullanabilirsin. Kullanımı;
<% Response.Status = [gönderilecek hata] %>
Örnek: Bir parola kontrolünden sonra eğer girilen parola yanlış ise Bu sayfaya görme yetkiniz yok hatası çıkarılabilir. (401 Unauthorized)
ASP'de server'la ilgili bilgi almak için kullanılar HEADER'lara ilave yeni durumlar eklemek için kullanılır. Kullanımı;
<% Response.addheader = [adi],[degeri] %>
Server'a giren ip'lerin taleplerinin sistem bilgilerinin tutulduğu bir log dosyaları vardır. ASP kodu ile istenilen bir metinde bu metod kullanılarak bu dosyalara yazılabilirsin. Kullanımı;
<% Response.ApparentToLog [yazılacak metin] %>
Örnek: Sitendeki bir sayfada kullanıcılar süreki hata alıyorlarsa bu hataları sen error takibi ile log'a yazdırabilirsiniz.
Web sayfasına binary tipinde gelen bilgileri yazmak istiyorsan, bunu normal write metoduyla yapman mümkün değil. Bu tarz işlemleri yapman içinse Binarywrite'ı kullanman yeterli. Kullanımı;
<% response.binaryWrite [yazılacak binary bilgi] %>
Örnek: Resim dosyasını binary olarak açık içeriğini binarywrite ile sayfaya resim olarak yazdırabilirsin.
Buffer'ı ture değerini atadığında olanları yukarda anlatmıştım. Şindi bu metod ile hafızadaki bilgiyi kullanıcıya göstermeden temizleyebilirsin. Kullanımı;
Sayfanın herhangibi bir yerinde sayfanın yüklenmesini durdurabilmek için bu metodu kullanabilirsin. Basic deki end kullanımıyla aynıdır.
Not: Kullanmak için buffer=true yapmayı unutma...
O ana kadar eger buffer açılmışşa bufferdaki tüm bilgiyi sayfanın yüklenmesi bitmeden kullanıcı gönderir. kullanımı;
Bulunduğun sayfadan başka bir sayfayı çalıştırmak için kullanıcıya bişey tıktamdan direk redirect metodu ile yapabilirsin. Kullanımı;
<% response.redirect [yönlendirilecek URL] %>
örnek: <% response.redirect "www.vbturk.net" %>
Sayfaya yazılması gereken herşeyi response.write ile yazdırabilirsin. Bu metod sanırım ASP'nin en çok kullanılan metodudur.
<% response.write [yazılacak bilgi] %>
Örnek: <% response.write "<b>VBTÜRK</b>" %>