REQUEST/İstek-Talep NESNESİ

Request nesnesi, Web programımızın Girdi (Input) bölümünü oluşturur. Bir Web ziyaretçisi herhangi bir talepte bulunduğu, yani bir sayfanın gönderilmesini istediği anda, Web Server bu talebi, bir nesne olarak ele alır ve istenen bilgiyi ziyaretçinin Browser’ına gönderir.

Request.Form : Bir web sayfası üzerindeki form bilgileri almak için iki yöntem mevcuttur.Bunlar GET ve POST yöntemleridir. Bu iki yöntem arasındaki farklar şunlardır ;

Get metodu Post metodu
Veri tutma kapasitesi sınırlı Sınırsız
Veriler transfer edilirken browser adres çubuğunda göründüğü içingüvenli değildir Güvenli. Adres çubuğunda veriler bilgiler görüntülenmez
Formlardan ve adres çubuğundan bilgi alabilir (Örn : form.asp?id=145 yazarsanız kabul eder.) Sadece formlardaki bilgi alınabilir
Request.Querystring komutu ile veriler alınır Request.Form komutu ile veriler alınır

Tablodan da anlaşacağı üzere post yöntemi daha fazla tercih edilir.Fakat sonuç olarak form öğelerimizin sayısı ve kullanıcıdan istediğimiz bilgilerin boyutuna göre bu 2 metottan hangisini kullanacağımıza karar vermek bize kalıyor.

Request.Form komutu , verileri başka sayfalara aktarabilmek için kullanılan POST tipi formlardaki değişkenleri okuyabilmeyi sağlar.

Örnek 1. form.asp dosyası

[html]<body>
<form action="formal.asp" method="post">
<p>
Ad: <input type="Text" name="isim" maxlength="20"><br>

Email : <input type="Text" name="email" maxlength="20"></p> <p>
Bölüm: <select name="select">

<option>Bilgisayar</option>

<option>Elektronik</option>

<option>Otomatik Kumanda</option>
</select> <br>

<input type="Submit" name="Submit" value="Gönder">

</p>< /form></body>[/html]

Formal.asp dosyası

[asp]<body>
<% Response.Write
Request.Form("isim") + "<br>"

Response.Write Request.Form("email") + "<br>"

Response.Write Request.Form("select") %> bolumunde okuyor

</body>[/asp]

Request.Querystring : Web ziyaretçisinin bilgisayarından kalkıp Server’a gelen her şey, QueryString koleksiyonunu oluşturur. Bu ziyaretçinin Browser’ın URL adresi hanesine yazdığı bir basit HTML sayfası yolu ve adı olabilir; Linklerle gönderilen veriler; GET tipindeki bir Form’un Gönder düğmesini tıkladığında gelen bilgiler olabilir.

Örnek 3. Form.asp dosyası

[html]<body>
<Form action = "FormGetAlRes.asp" method="get">
Lütfen Adınızı Yazın: <Input NAME="isim" size ="20"><br>
Mesleğiniz : <Input NAME="bolum" size="25"> <br>
<Input type="submit" value="Gönder">
</form> </body>[/html]

FormGetAl.asp dosyası
[asp]<body>
<%
ism=request.querystring("isim")
blm=request.querystring("bolum")
response.write ism & "<br>"

response.write blm & "<br>" %>
</body>[/asp]

RESPONSE/Cevap-Karşılık NESNESİ
Server’dan kullanıcının tarayıcısına giden her şey karşılıktır.Response nesnesinin bir çok özelliğini kullanarak ziyaretçimize göndereceğimiz sayfaları ve diğer unsurları yönetebiliriz:

Buffer (Tampon): True (doğru) olarak ayarlandığında ziyaretçiye gönderilecek sayfanın bütün unsurları bir tampon bölgede toplanır, Script’in çalışması bitinceye kadar beklenir ve HTML çıktı toptan gönderilir. <%Response.Buffer = TRUE%>

Flush (hemen gönder): Buffer metodu sayfanın tümünün Script’in icrası bitmedengönderilmesini önlerken, Flush bunun tam tersini yapar. ASP, Response nesnesinin Flush metodu kullandığımızı gördüğü anda, o ana kadar icra edilmiş kodun sonucu olan HTML’i Browser’a gönderir: <%Response.Flush%>

Clear (Sil): Buffer metodu ile Script’in sonunu beklerken geçici bir alanda tutulmakta olan HTML, Clear metodu ile temizlenir. Flush metodunda tampondaki HTML tarayıcıya gönderilir; ancak Clear metodu tampon bölgedeki her şeyi yok eder. Böyle "tehlikeli" bir metod neden vardır ve nerede kullanılabilir? Bir çok yerde: Örneğin ziyaretçinin alışveriş sitemizde alışverişten vazgeçtiğini belirtmesi üzerine tampon bölgede tutmakta olduğumuz ve alınan mallar listesini içeren HTML’i bu yöntemle temizleriz: <%Response.Clear%>

Expires (Süresi dolar): Kullanıcı tersine bir ayar yapmadıysa, tarayıcı genellikle görüntülediği sayfaları Geçici Internet Dosyaları dizinine (cache ~ önbellek) kaydeder ve tekrar aynı sayfayı görüntülemek istediğinizde sayfayı İnternet’ten edinmek yerine kendisabit diskinden alır. Oysa özellikle haber gibi süreli bilgilerin sunulduğu web sitelerinde bu durum sitenin itibarını sarsar. Expires metodu ile bu sorunun önüne geçilebilir. ASP kodumuzda bu sayfanın <cache dizinde örneğin 60 dakikadan fazla tutulmamasını sağlayacak Expires metodunu kullanabiliriz: <%Response.Expires = 60%> ’60 dakika bilgileri cache’te tutar. Burada yazdığımız rakamı değiştirerek, sayfanın cache’de tutulacağı dakikayı belirleyebiliriz. "Expires = 0" ise o sayfanın hiç saklanmamasını sağlar.

End (Son): Response nesnesinin o anda icra edilmekte olan Script’i durdurarak, o ana kadar ne elde edilmişse hepsini tarayıcıya göndermesini sağlayan metodu olan End, aynı zamanda Buffer metoduyla tutulan HTML’in de gönderilmesine yol açar. Bu metoddan sonraki HTML veya ASP kodları icra edilmez. <%Response.End%>

Örnek 4. Aşağıdaki programda sadece 2 numaralı yazı ekrana yansıyacaktır.

[asp]<%Response.Buffer = True%>
<html><body>
1.Bilgisayar Programcılığı
<%Response.Clear%>
2.Endüstriyel Elektronik
<%Response.Flush%>
<%Response.End%>
3.Otomasyon </body></html> [/asp]

Response.Write : Ziyaretçiye çıktı göndermek için kullanılır. Kullanım şekilleri ;

  1. <% Response.Write Request(“ad”) %> ‘ad isimli Text değişkenini değerini Browser’a yollar.
  2. <% Response.Write “<table border=”1” >” %> ‘Sayfaya HTML tagı ekler.
  3. <% For Each x Request.Form Response.Write x Next %> ‘Form üzerindeki tüm değerleri browser’a yollar.

Örnek 5.
[asp]<% Dim Gunler
Dim sayac Gunler = Array("Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi", "Pazar")
For sayac = 0 to 6
Response.Write Gunler(sayac)
Response.Write " <br> "
Next %>[/asp]

           Response.Redirect : Aktif olan sayfadan başka bir sayfaya URL yönlendirme işlemi yapar.

Örnek 6.
[asp]<% @LANGUAGE=VBscript
Response.Expires = 0
Response.Redirect("www.bilgisayarcafe.com") %>
<html>
<body>Bu sayfa görünmez…</body>
</html>[/asp]