|
5 Derste HTML Eğitimi - HTML Bilmeyen Kalmasın
HTML'de Kullanılan Teknolojiler
Java
CGI (Common Gateway Interface)
VBScript (Visual Basic Script)
Java
Java, Sun Microsystems firması tarafından
1991 yılında geliştirilmiş nesneye yönelik
bir programlama dilidir. Java, temel veri
tiplerini, giriş çıkış fonksiyonlarını ve
diğer fonksiyonları içeren sınıf
kütüphanesine sahiptir. Bu programlama dili
aynı zamanda internet protokollerinin çoğunu
destekleyen fonksiyonlara da sahiptir. Java
çok fazla komut içermemesine rağmen, uygun
komutları bünyesinde barındırdığı için,
güçlü bir dil olarak kabul edilmiştir. Java
programlama dili, geliştirilirken C ve C++
dillerini kendine baz almıştır.
Java ile yazılan bir programın
çalıştırılabilmesi için, iki aşamadan
geçirilmesi gerekmektedir. Birinci aşama
programın derlenmesi aşamasıdır. Programın
Java derleyicisi ile derlenmesi sonucunda,
byte kod (Java binary kod) denilen makina
koduna yakın, fakat işlemciye özel olmayan
kod oluşturulur. İkinci aşama ise, programın
byte kodunun bir byte kod yorumlayıcısından
geçirilmesi aşamasıdır. Byte kod
yorumlayıcısı programın çalışmasını sağlar.
Java’ nın bu özellii ona hem avantaj hem
dezavantaj getirir. Derlendikten sonra
işlemciye özel kod üretilmemesi sayesinde
Java sistemden bağımsızdır, üzerinde Java
yorumlayıcısı bulunduran herhangi bir
sistemde çalışır. Fakat, bir Java
yorumlayıcı programı yürüttüğü için, işletim
hızı da yavaşlar.
Java’ da program yazabilmek için bir Java
Geliştirme Kiti (JDK) gereklidir. Herhangi
bir editörde (Unix için pine, vi; DOS
altında MSDOS Edit vb…) yazılıp, *.java
uzantılı kaydedilen Java programı dosyası,
JDK’ de komut satırına javac dosya_ismi
yazılıp derlenir. Bu işlem sonucunda
dosya_ismi .class dosyası oluşur. (Byte kod
dosyası) JDK’ den java yorumlayıcısı
çağırılarak, programın çalıştırılması
istenirse, komut satırına java dosya_ismi
yazılır.
Java dili ile yazılan programları, Java
uygulamaları ve Java appletleri olmak üzere
iki ana grupta toplayabiliriz. Java
uygulaması, herhangi bir probleme çözüm
getirmek amacıyla, Java dili ile yazılmış
bir programdır. Örneğin; ekrana “Ben Java
öğreniyorum!” çıktısını veren bir program
yazalım:
Class JavaOgreniyorum {
public static void main(String args[]){
System.out.printIn(“Ben Java öğreniyorum!”);
}
}
Bu programı bir editörde yazıp, genelde
sınıfa verdiğimiz isi dosya ismine de verip,
kodu JavaOgreniyorum.java olarak kaydederiz.
Daha sonra yukarıda açıklandığı gibi, JDK’
de derlemek için komut satırına javac
JavaOgreniyorum yazıp, JavaOgreniyorum.class
dosyasının oluşmasını sağlarız. Programın
çalışması için de java JavaOgreniyorum komut
satırını yazarız.
Java appleti ise, Java desteğine sahip bir
listeleyicide (browserda) görüntülenen Web
sayfaları içerisinden çalıştırılabilen
programlardır. Bir Java appleti imajlara
benzer, fakat, dinamik ve interaktif
olmasıyla farklılaşır. Bir Web sayfasına
java appleti bağlamak için, önce Java dili
ile program yazılıp derlenir. Sonra HTML ile
hazırlanmış Web sayfasında bu dosya referans
olarak gösterilir. HTML dosyası ile applet
dosyasının aynı dizinde olması tavsiye
edilir. (bir HTML dosyası ile o sayfada
kullanılan imaj dosyası gibi) Web sayfası
yüklendiğinde Web listeleyicisinde
(browserında) gömülü olan Java yorumlayıcısı
sayfadaki appletleri çalıştırmaya başlar.
Appletlerin Web sayfasında çalışması için,
kullanılan listeleyicinin Java desteğine
sahip olması gerekmektedir. Bu amaçla
geliştirilen ilk listeleyici (browser),
HotJava olup (HotJava Java dili ile
yazılmıştır.), daha sonra diğer Web
listeleyecilerinin de Java’ yı destekleyen
yeni sürümleri çıkartılmıştır. (Örneğin,
Netscape 2.0 gibi)
Şimdi deminkine benzer bir Java appleti
yazmayı ve bunu bir Web sayfasına bağlamayı
deneyelim:
import java.awt.Graphics;
public class JavaOgreniyorumApplet extends
java.applet.Applet{
public void paint (Graphics g){
g.drawstring(“Ben Java öğreniyorum!”, 5,
25);
}
}
Burada import komutu da applet’ in JDK
içindeki sınıflara erişimini sağlar.
Bu applet dosyası da deminki Java programına
benzer biçimde, bir editörde yazıldıktan
sonra ait olduğu sınıf ismi dosya ismi
olarak verilip JavaOgreniyorumApplet.java
şeklinde kaydedilir. JDK’ de javac
JavaOgreniyorumApplet komut satırı yazılıp,
programın derlenmesi sağlanır. Daha sonra
oluşturulan byte kodun çalışması için, java
JavaOgreniyorumApplet komut satırı yazılır.
CGI (Common Gateway Interface)
CGI’ ın ne olduğunu anlatmaya geçmeden önce
bazı kavramların açıklanması gerekmektedir.
Buna Web Server ve Client ile başlamak
yerinde olur. Web Server’ lar (HTTPd
Server), Web sayfalarını üzerinde bulunduran
makinalardır. Bu makinalar genelde kendi
üzerlerinde bulunan Web sayfalarına erişmek
için 80 numaralı portu kullanırlar. Client
ise, Web Server’ lar üzerindeki Web
sayfalarına erişmek isteyen makinalardır.
Client herhangi bir porttan Web Server ile
iletişim kurabilir. Stdin standard input’ un
kısaltılmışıdır ve server açısından client’
ın server’ a gönderdiği veriler anlamına
gelir. Stdout standard output’ un
kısaltılmışıdır ve server’ ın client’ ın
gönderdiği verileri işlemesi sonucunda
client’ a gönderdiği sonuç bilgisi anlamına
gelir.
Yukarıdaki açıklamalardan da anlaşıldığı
gibi, HTTP protokolü, server’ dan client’ a
ve client’ tan server’ a veri aktarımını
destekler. Client’ ın server’ a veri
gönderebilmesi, formlar aracılığıyla olur.
Form, client’ ın server’ a veri
ulaştırmasını sağlamak amacıyla HTML dili
kullanarak yazılmış Web sayfalarıdır.
Kullanıcının (client) form aracılığıyla
server’ a gönderdiği bilgiyi işleyecek
server tarafında çalışan bir programa
ihtiyaç vardır. Bu programa gateway programı
denir. CGI (Common Gateway Interface),
client’ ın gönderdiği input verileri alıp,
gateway programına veren (gateway
programının çalışmasını sağlayan) ve
programın çıktısını tekrar client’ a ileten,
kısaca server ve server tarafındaki gateway
programları arasında iletişimi sağlayan, bir
arayüz, protokoldür.
Bir Web Client programının (Web browser),
HTTP server’ ına veri göndermesini sağlamak
için hazırlanan formlar, HTML diliyle
aşağıdaki gibi başlar:
<FORM ACTION=”URL” METHOD=get | post>
…..
…..
</FORM>
Action seçeneğinde belirtilen URL, formun
doldurulduktan sonra, hangi Web server’ daki
hangi program tarafından işleneceği
bilgisini ifade eder. Method seçeneği ise,
formun Web server’ ına hangi methodla
ulaştırılacağını belirtir. Yukarıdan da
anlaşılacağı gibi, formdaki bilgiler iki
methodla ulaştırılabilir. Get metodu
kullanılırsa, veri çevresel değişkenler
aracılığı ile, Web Server’ a ulaştırılır. Bu
metodla bütün form bir query_string
değişkeninin içine konur, action kısmında
belirtilen adres ve programın sonuna eklenir
ve tek bir URL olarak gönderilir.
http://bla.bla.edu./stuff/program?query_string
Veri büyüklüğü sınırlandırılmıştır. Bu
yöntem kullanıldığı zaman, actionda
belirtilen URL önce decode edilmelidir,
çünkü form doldurulup, submit edildiğinde,
browser bütün bilgiyi URLencode eder. Decode
işlemi bir CGI script (gateway programı) ile
yapılabilir. Yukarıda submit edilen URL
incelendiğinde, soru işaretine kadar olan
kısmın, formun action kısmında yer alan
adres ve program olduğu görülür. Soru
işaretinden sonraki kısım ise, gönderilen
verilerin yer aldığı değişkendir.
Post metodu kullanıldığında ise, CGI veriyi
stdin olarak, alır ve bütün çevresel
değişkenlere gerekli atamaları yapar. Veri
üzerinde herhangi bir büyüklük sınırlaması
yoktur.
Verinin gateway programı tarafından
işlendikten sonra, client’ a geri
gönderilmesine gelince; çıktılar MIME
çıktıları, redirection ve nonparsed Headings
olmak üzere üç şekilde gönderilebilir.
Sadece MIME çıktılara genel olarak bakalım:
Çıktının MIME type gönderilmesi, herhangi
bir Web sayfası, ses veya video dosyası ya
da sade text olması demektir. Gateway
programı, standard output’ un MIME tipini
belirten başlık mesajlarını koymak ve altına
bir de boş satır bırakmak zorundadır.
Örneğin;
Content-type: MIME type (text/html)
Data…
Data…
Bir gateway’ in kullanım amaçları çok
çeşitli olabilir. Bir örnek vermek
gerekirse; bir Web server üzerindeki bir
veri tabanı üzerinde, bir bilginin, verilen
bir keyword aracılığıyla araştırılması bir
gateway programıyla halledilebilir. Bir
gateway programı herhangi bir programlama
diinde yazılabilir. Fakat, bir gateway
yazmak için en çok tercih edilen programlama
dilleri şunlardır: C, C++, Fortran, Perl,
TCL, herhangi bir Unix Shell, Visual Basic,
AppleScript. Script diliyle yazılmış
programların kendileri server’ a konur,
diğer dillerde yazılmış programların ise
derlenmiş hali server’ a konur. Derlenmiş
hali server’ a konan programların source
kodları da bilgi amacıyla genelde konur.
CGI real time çalıştırılır, yani client ne
zaman çalıştırmak isterse, CGI bu isteği
alır, verileri çevresel değişkenlere
aktararak gateway’ e gönderir ve gateway’ i
çalıştırmaya başlar ve çıktı programın
çalışması bitince, CGI tarafından alınıp,
client’ a gönderilir.
Gateway’ lerin server’ a konması için iki
yol izlenebilir: Bunlardan birincisi, herkes
kendi dizini altına programını koyar ve bir
de hangi uzantılı dosyaların server
tarafından cgi olarak kullanılacağının
server’ a bildirilmesi için bir .htaccess
dosyası hazırlar. Fakat, bu yöntem pek
tercih edilmez, çünkü güvenli gateway
programı yazmak kolay bir iş değildir.
Gateway’ ler real time çalıştırıldığından,
kötü niyetli kişiler, gateway’ I server’ I
zor durumda bırakacak şekilde
kullanabilirler. Bunu engellemek için,
gatewayler server üzerinde ayrı bir dizin
altında tutulurlar. (cgi-bin dizini) Gateway
programları, bu dizine sadece Webmaster’
ların bilgisi ve izni dahilinde konulabilir.
VBScript (Visual Basic Script)
VisualBasicScript, JavaScript gibi script
diller, HTML’ ye ek olarak tasarlanmıştır.
Bu diller ile programlar HTML içine yazılır
ve Web sayfasının interaktif ve dinamik
olmasına hizmet ederler. VBScript eklenmiş
sayfalar bu dili destekleyen listeleyiciler
(browserlar) tarafından görüntülenebilir.
Mevcut listeleyiciler (browserlar) arasından
sadece Internet Explorer VBScript desteğine
sahiptir. HTML dökümanı içindeki scriptleri
ayırıp (parse), işletmek (process) -bu dili
destekleyen- listeleyicinin (browserın)
sorumluluğundadır.
Bir VisualBasicScript’ I HTML içine
yerleştirebilmemizi sağlayan bir HTML
belirteci (tag) vardır: <SCRIPT> ….. </SCRIPT>
Bir VBScript’ I değişik yollarla HTML
kodumuz içine yerleştirebiliriz. Örneğin,
üzerinde Tıkla yazılı bir button’ I <FORM>
….. </FORM> belirteç çiftiyle oluşturmak ve
VBScript kullanarak, oluşturduğumuz bu
button’ a tıkladığımız zaman ekranda “Bu
VisualBasicScript’ in basit bir örneğidir.”
mesajının gelmesini sağlamak isteyelim.
Böyle bir istek aşağıdaki yapı ile
gerçekleştirebilir:
HTML>
<HEAD>
<TITLE> VBScript içeren sayfama hosgeldiniz.
</TITLE>
</HEAD>
<BODY>
<P> Kullanılan VBScript, asagidaki dugmeye
tikladiginizda, ekrana bir mesaj kutusunun
gelmesini saglayacaktir. </P>
<FORM NAME="formornegi">
<INPUT TYPE="Button" NAME="Tiklakomutu"
VALUE="Tikla">
<SCRIPT FOR=”Tiklakomutu” Event=”onClick”
Language=”VBScript”>
MsgBox “Bu VBScript’ in basit bir ornegidir.”
</SCRIPT>
</FORM>
</BODY>
</HTML>
Yukarıdaki HTML kodunda, SCRIPT belirteciyle
kullanılna FOR seçeneği, bu script’ in
TiklaKomutu isimli dğme (button) için
yazıldığını belirtir. Event seçeneği ise, bu
scriptin button üzerine tıklayınca
çalışacağını gösterir. Language ise,
kullanılan script’ in bir VBScript olduğunu
açıklamak içindir. Bu açıklama olmaksızın,
listeleyici (browser) yazılan script’ in
hangi script (JavaScript mi VBScript mi)
olduğunu anlayamaz.
Yukarıda kullanılan yöntem okunabilirliği
azalttığı için pek tavsiye edilmez. Onun
yerine aşağıdaki gibi bir kod yazılsa daha
iyi olur.
<HTML>
<HEAD>
<TITLE> VBScript iceren sayfama hosgeldiniz.
</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub Tiklakomutu OnClick
MsgBox "Bu VBSript’ in basit bir ornegidir."
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<P> Kullanılan VBScript, asagidaki dugmeye
tikladiginizda, ekrana bir mesaj kutusunun
gelmesini saglayacaktir. </P>
<FORM NAME="formornegi”>
<INPUT TYPE="Button" NAME="TiklaKomutu"
VALUE="Tikla”>
</FORM>
</BODY>
</HTML>
Yukarıdaki kodun <HEAD> ….. </HEAD> kısmı
içine yazılan script, bir altprogramdır. Sub
altprogramın başladığını, End Sub ise
bittiğini gösterir. Sub’ tan sonra gelen
TiklaKomutu OnClick, TiklaKomutu isimli
button üzerine tıklandığında, bu alt
programın çalışacağını belirtir. Bu tip
procedure’ lara event-procedure denir.

|