|
COMPONENTS
Kuşkusuz ASP deki Sunucu objeleri ASP programcıları için bulunmaz
bir nimet. Çünkü bunlar ASP yi zenginleştiren ve daha interactive yapan
öğelerdir. Nelerdir bunlar ?
ASP nin normalde standart onbir tane sunucu bileşeni vardır.
Bunlar;
- Ad Rotator Bileşeni
- Browser Capabilities Bileşeni
- Content Linking bileşeni
- Content Rotator Bleşeni
- Page Counter Bilşeni
- Permission Checker Bileşeni
- Counters Bileşeni
- MyInfo Bileşeni
- Tools Bileşeni
- Status Bileşeni
Bunlar tabii Microsoft ile beraber gelen standart IIS bileşenleridir.
Hepsi bunlarla sınırlı değil tabii. ıleri seviye olarak kendi
Bileşenlerinizi bile yazabilirsiniz. Bunu VB 6.0 da ActiveX bileşenleri
olarak yaratabilir ve derleyebilirsiniz. Birde hazır ticari amaçla
yapılmış sunucu bileşenleri vardır, bunlarda Sunucu sahipleri tarafından
Sunuculara kurulup hizmete sunulan bileşenlerdir. Bunlarada 3.parti
sunucu bileşenleri olaral adlandırabiliriz. File Uploader, Mail
sender, Asp Tear gibi değişik bileşenler buna örnek olabilir. Biz
burda kısaca Standart sunucu bileşenlere göz atacağız.
Ad Rotator Bileşeni:
Bu bileşen, bizlere ASP sayfalarımızda değişik imajlar yahut Grafikler
göstermemize olanak sağlayan bir bileşendir.Daha ziyade ticari amaçlar
için kullanılabilir diyebiliriz. Her defasında eriştiğimizde değişen
Bannerlar buna güzel bir örnek teşkil ediyor. Sadece Banner grafiklerini
değiştirmeklede kalmayıp, bunlara kaçar defa tıklandığını sayabilen ve
birtakım istatistiklerde tutabilen bir bileşendir. Bileşen nesnesinin
kullanım şekli;
<% Set NesneAdRotator = Server.CreateObject("MSWC")%>
Genelde bu bileşenin kullanım amacı yukarıda belirttiğim gibi Ticari
kullanımdır. Bu tür bir obje yaratmak için birden fazla adım gerektirir.
Öncelikle bileşen nesnesini oluştururuz ve daha sonrası Ad Rotator
Schedule dosyasını yaratırız. Bu bileşen Adrot.dll içinde oluşturulur.
Browser Capabilities Bileşeni:
Bu bileşen, bize sayfalarımıza gelen ziyaretcilerin kullnadıkları
Tarayıcılar (Browser) hakkında bir fikir verir. Her ne kadar IE ve
Netscape en çok kullanılan Tarayıcılar olsalar bile diğer başka
Tarayıcılarda mevcuttur. İşte bu tüm Tarayıcların desteklediği Html
tagları, javascripler, ActiveX ler vs. vardır. Bu konu hakkında
(destekleme konusu) Browscap.ini dosyasını incelemenizi ve araştırmanzı
önerebilirim. Win 98 de Windows/system directory sinde NT de ise
Winnt/system32 klasörünün nün içinde bulunur. Ayarları ile oynamamanızı
öneririm..
İşte bu bileşen ile bir tarayıcının hangi özellikleri desteklediğini
öğrenebiliriz. Bunu HTTP başlığını kullanarak user agent dediğimiz ve
içerdiği Server Variables ile sağlayabiliriz.
<% = Request.Server.Variables("HTTP_USER_AGENT")
Content Linking bileşeni:
Bu aslında basit ama faydalı bir Bileşendir. Bunu, esasen bir kitapdaki
index sayfası gibi görebilirsiniz. Bulunduğumuz bir sayfanın içinden
Sitede bulunan diğer linkleri gösteren ve içerisinde bize ileri veya
geri hareket etmemizi sağlar. Kullanım şekli aşağıdaki gibidir;
<% Set NesneSonrakiSay = Server.CreateObject("MSWC.nextLink") %>
Kısa bir örnek ile bunu açıklayalım:
<% Set SonrakiSay = Server.CreateObject("MSWC.nextLink")
zCounter = SonrakiSay.GetListCount("index.txt")
For z = 1 To zCounter
%>
Content Rotator Bileşeni:
Ad Rotator Bileşeninin daha basit bir şeklidir. Grafikleri değil, text
içerikli dosyalara aynı desteği sağlar.(bkz.Ad Rotator Bileşeni)
Permission Checker Bileşeni :
Bu bileşen bir kullanıcının herhangi bir dosyayı okuması için yetkisi
olup olmadığını kontrol eder, ve IIS in şifre doğrulama özelliğini
kullanarak çalışır. Kısacası, bir sitede farklı kullanıcılar için
sayfaları yetkiye göre izlenip izlenememesini ayarlayabilirsiniz.
Anonim, Basic ve NTML şeklinde üç değişik şifre kontrolü sağlamak
mümkündür.
My Info Bileşeni :
Bu bileşen, Server yöneticisi tarafından sağlanan kşişsel bilgilerin
saklanması için kullanılır. Yani içerik, e-mail, adres vs. tipi bilgiler
tutlduğu, parametre olarak oluşturulan bir formdur. Hani bilirsiniz,
makinanıza PWS yada IIS kurarken, ilk bir default page oluşturulur. ışte
bu MyInfo bunu ta kendisidir. Burda kişisel bilgiler bulunur. Bu
bilgiler MyInfo.xml adlı bir dosyada tutulur. Peki web de bunun bize
faydası nedir? Faydası, mesela sayfalarda e-mail adresi oluşturdunuz.
Myinfo daki mail adresini değiştirdiğiniz zaman tüm asp sayfalarındaki
mail adresiniz değişmiş olur. Tabii bunu Html deki css ile
karıştırmıyoruz. Örneğin:
<%
var ref = '<a href = "mailto:" response.write
(ref+MyInfo.Email'">+'Mail'+'</a>')
%>
bu şekilde <a>....</a> arasında kalan kısmı oluşturmuş
olursunuz. xml özelliğini kullanarak kendi etiketlerinizide
kullanabilirsiniz.
Tools Bileşeni :
<% Set Tool = server.CreateObject("MSWC") %>
Bu bileşen bizlere, aps ye bazı fonksiyonlar yani ek işlevsellikler
eklememize olanak tanır. Mesela, Tools.FileExist metodu ile dosyaların
var olup olmadığını kontrol edebiliriz.Sunucu pluf inlerini kontrol
edebilir veyada Bir Html formunu oluşturabilirsiniz.
Status Bileşeni :
Bu bileşen, server durum bilgsinini içeren bir nesne oluşturur. Yani
server durumunu bildirir.
COOKIE'LER VE
KULLANIM ALANLARI
Cookie(çerez) ler sayesinde istemcinin bilgisayarında bazı bilgiler
saklanabilir Bu bilgiler kişisel bilgilerin veya sitede o kullanıcıyla
ilgili bilgilerin saklanması için kullanılabilirler. Cookie "response"
nesnesinin bir koleksiyonudur.
Cookielerde bilgiler isim-değer çiftleri şeklinde tutulurlar
kullanıcının bilgisayarına yollanırken de bu şekilde yollanırlar.
Örnek:
response.cookie("isim")="xxx"
Bir cookiede birden fazla alt anahtar bulunabilir.
Örnek:
response.cookie("aaa")("bbb")("ccc")="xxx"
Cookielerin "expires" adynda bir özeliği vardır Bu şekilde cookienin
kulanıcı bilgisayarında hangi tarihe kadar saklanacağı belirtilebilir.
Örnek:
response.cookie("xx").expires="feb 11,2000"
Bu ifade ile bu cookienin 11 şubat 2000'e kadar bilgisayarda
saklanacağını belirtilir. Cookie bilgilerinin alınması ise şu şekilde
olur..
response.cookie("xxx")="aaa"
şeklinde kullanıcı bilgisayarına yollanan cookie
Request.cookie("xxx")
şeklinde çağırılıp bir değişkene atanarak kullanılabilir.
Genel olarak tüm cookiler bir klasör altında saklanır "windows/cookies"
gibi... Cookielerin Haskey denilen özelikleri belirtilerek başka
sitelerin aynı çereze erişmesi,çerezin saklanacağı path'in belirtilmesi
gibi işlemlerde yapılabilir
INCLUDE - SERVER.TRANSFER
Include bir sayfanın kodlarını mevcut sayfaya ekler. ASP'de ise
Server.Transfer bu işi yapar. Mesela;
<!-- #include file="veri.asp" -->
Bu kodu ASP taglarının dışına yazabiliriz. Fakat;
<%
Server.Transfer("veri.asp")
%>
bu başlı başına bir ASP komutudur. Daha çok Include kullanılır; fakat
uzmanlar Server.Transfer kullanmayı öneriyorlar.
NOT: Bu kodları nereye koyarsanız, oraya eklenir. Yani
anlaşıldığı gibi bunu menü, anket, üye girişi, şifre kontrol gibi
yerlerde kullanıyoruz.
RESPONSE NESNELERİ
"response" bir ASP nesnesidir ve sunucudan Ziyaretciye çıktılar
Gönderir. Şimdi sırasıyla response nesnelerini tanıyalım:
response.write:
.asp sayfası içinde istedigimiz degişken ya da yazıların görünmesini
saglayabiliriz. Örnek verecek olursak:
<% @LANGUAGE=VBScrip CODEPAGE=1254 %>
<% d=Mehmet Selçuk Batal
response.write("Bu Dersi, Editör: ")
response.write(d)
response.write "Hazýrlamýþtýr"
%>
response.write'nin kısa yazım biçimi ise;
<%=(degiþken veya sabit)
response.flush:
Sunucu sayfa içinde bu ifadeye rastlarsa, tampon(buffer) hafızada
tuttuğu degerleri, browser'a gönderir:
<% @LANGUAGE=VBScrip CODEPAGE=1254 %>
<%response.Buffer=true%>
<p>Bu Satýr tompon hafýzata saklanan satýr.</p>
<%response.Flush%>
<p>Buyazý ise Flush metodundan sonra yazýlmýþtýr<p>
Bu işlem çok hızlı olacagından, bize normal bir sayfa yükleniyormuş
gibi gözükür.
response.end:
Sunucu bu satırı gördügünde işlemi durdurur ve tampon hafızadaki
degerleri browser'e gönderir ve sciptin çalışması durur.
<% @LANGUAGE=VBScrip CODEPAGE=1254 %>
<%response.Buffer=true%>
<p>Bu yazýyý yazdýktan sonra response.end metodu çalýþtýrýlmýþýt o
yüzden
burdaki yazýlardan sonrakiler gözükmeyecekler</p>
<%response.end%>
<p>Bu yazý hiçbir zaman gözükmeyecek </p>
response.clear:
Sunucu bu methodu görene kadar tampon hafızada tuttuğu bütün bilgileri
siler. Yani response.end'in tam tersi bir işlem yapar.
<% @LANGUAGE=VBScrip CODEPAGE=1254 %>
<%response.Buffer=true%>
<p>Bu satýrlar sunucunun tampon hafýzasýnda saklanýyorlar ama bu
satýrlardan
sonra response.Clear metodu ile silinecek ve gözükmeyecekler</p>
<% response.Clear %>
response.redirect:
Sunucu bu sayfada bu ifadeye rastlarsa çalışmasını durdurup
belirtilen URL adresindeki sayfayı browser'a getirir.
response.Redirect "yönlendirecegimiz Sayfa.asp"
response.expires:
Ziyaretci sunucudan sayfayı istedigi zaman, bu sayfalar ziyaretcinin
bilgisayarında geçiçi bir bellekte saklanır. Ziyaretci tekrar aynı
sayfaya geldigi zaman browser ilk önce, bu bellekte arar, bulursa
görüntüler. Ancak siz bunu istemeyebilirsiniz veya bunun olmaması
gereken bir durum vardır. Bunu engellemek için yani sayfanın her
seferinde sunucudan gönderilmesini saglamak için kullanabilirsiniz.
<% response.Expires=0 %>
Değeri sıfır yaparak geçici bellekte saklanmasını engelledik.
İstersek bunu belirli bir tarihe kadar saklanmasını saglayabiliriz. Yani
istedigimiz tarihte silinir.
<% response.ExpiresAbsolute=#May 01,2001 08:30:00# %>
SERVER DEĞİŞKENLERİ
VE SUNUCU BİLGİLERİ
ALL_HTTP İçindeki bütün degişkenler ve değerleri
ALL_RAW İçindeki bütün degişkenler ve değerleri ni İstemci
şeklinde gösterir.
APPL_MD_PATH Web sunucusunun ISAP:DLL'in varsayım olarak
kullandıgı kök dizin.
APPL_PHYICAL_PATH Web server sunucusunun varsayım olarak
kullandıgı kök dizin yolu.
AUTH_PASSWORD Web sunucusunun bağlanmak için kullangıgı parola.
AUTH_TYPE Web sunucusunda kullanılan kimlik denetim yöntemi.
AUTH_USER Web sunucusuna bağlanmak için kullanılan kullanıcı adı.
CERT_COOKIE Kullanılan güvenlik sertifikası tarafından
kullanıcıya verilen kimlik bilgisi.
CERT_ISSUER Sertifikanın verildigi - alındığı kurum.
CERT_FLAGS Sertifikanın oldugunu belirten bir bit.
CERT_KEYSIZE SSL için bağlantı anahtar değeri.
CERT_SECRETKEYSIZE Özel Anahtar değeri.
CERT_SERIALNUMBER Sertifikanın seri numarası.
CERT_SERVER_SUBJECT Sertifikanın konusu.
CONTENT_LENGTH İstemcinin gönderdiği bilgi kümesinin boyutu.
CONTENT_TYPE Kullanıcıdan alınan bilgilerin GET y ada POST olduğu
tür. HTTPS Bağlantı güvenli ise ON, değilse OFF. INSTANCE_ID Web
sunucusunun aynı anda çalışma sayısı.
INSTANCE_META_PATH Web sunucusunun meta bilgi yolu.
LOGON_USER Kullanıcının win_NT yada win_2000'de oturum acma adı.
LOCAL_ADDR İstemci IP adresi.
REMOTE_ADDR Web sunucusunun IP adresi.
REMOTE_HOST Web sunucusunun adı.
SERVER_PROTOCOL Sunucunun çalıştıgı http sürümü.
SERVER_SOFTWARE Sunucu programının adı ve sürümü.
Bunları bir örnekle daha iyi anlarsınız ve kullanabilirsiniz
<html>
<title>Sunucu Bilgileri</title>
Tarayıcı & Kullanıcı Yazılımı :
<%response.write (Request.ServerVariables ("http_user_agent")) %>
<br>
IP Adresi :
<%response.write (Request.ServerVariables ("remote_addr")) %>
<br>
Domain Adı :
<%response.write (Request.ServerVariables ("server_name")) %>
<br>
Web sunucusunun çalıþma sayısı :
<%response.write (Request.ServerVariables ("INSTANCE_ID")) %>
<br>
Çalıþmakda olan script adı :
<%response.write (Request.ServerVariables ("SCRIPT_NAME")) %>
<br>
HTTP sürümü :
<%response.write (Request.ServerVariables ("SERVER_PROTOCOL")) %>
<br>
Programın Adı ve Sürümü :
<%response.write (Request.ServerVariables ("SERVER_SOFTWARE")) %>
<br>
Geçerli URL :
<%response.write (Request.ServerVariables ("URL")) %>
|