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[]){
SystemoutprintIn(“Ben Java öğreniyorum!”);
}
}
Bu programı bir editörde yazıp, genelde sınıfa verdiğimiz isi dosya ismine de verip, kodu JavaOgreniyorumjava olarak kaydederiz Daha sonra yukarıda açıklandığı gibi, JDK’ de derlemek için komut satırına javac JavaOgreniyorum yazıp, JavaOgreniyorumclass 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 20 gibi)
Şimdi deminkine benzer bir Java appleti yazmayı ve bunu bir Web sayfasına bağlamayı deneyelim:
import javaawtGraphics;
public class JavaOgreniyorumApplet extends javaappletApplet{
public void paint (Graphics g){
gdrawstring(“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 JavaOgreniyorumAppletjava ş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
152 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
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
NOT:Alıntıdır |