İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

Servletlerin Çalışma Biçimi

Servletlerin Yapısı

Servlet'ler, istemci tarafında bir tarayıcı içinde çalışan Applet’lere benzer biçimde sunucu tarafında bir motor altında çalışan uygulamacıklardır. Temelde görevleri CGI (Ortak Kapı Arayüzü - Common Gateway Interface) programlarına benzemektedir. En çok kullanılan biçimiyle, bir tarayıcıda kullanıcı tarafından gönderilen form bilgisini işleyip yine kullanıcının tarayıcısına HTML biçiminde çıktı üretirler. CGI programları bağımsız olarak çalışırlarken servletler bir motor altında, sadece kendilerine motor tarafından sunulan alanda çalışırılar. Böylece güvenlik ve güvenilirlik sağlanmaktadır. Ayrıca CGI programının yapması gereken rutin işlemler motor tarafından yapılmakta, servletler bu yükten kurtulmaktadır. Çok-kanallılık (multitheading), eşanlılama (synchronization) gibi konularda da motorun sağlayacağı olanaklardan faydalanılmaktadır. Applet'lerin aksine, sunucu tarafında çalışmaları nedeniyle her türlü veritabanı veya diğer uygulamalara doğrudan erişme imkanına sahiptirler. Servlet programı yazarları, diğer yazma (script) ve CGI programcılarının aksine çok güçlü, nesneye yönelik programlama olan Java’da çalışmanın avantajlarından faydalanabilmektedirler.

Bir servletin çalışması sonderece basittir. Kullanıcıdan gelen İstek (Request) servlete verilir ve servlet içinde bu istekten alınan parametreler kullanılarak üretilen sonuçlar Yanıt'a (Response'a) yazılır. Her servlet, bir temel servlet sınıfını genişletirler. Yapılması gereken tek şey, service() adlı bir yöntemi yeniden yazmaktadır. Yapılacak tek şey İsteği almak ve Yanıt'ı üretmektir. Bir sevlet yüklenirken yapılması gereken işlemler init() yüntemini yeniden yazarak, servlet yokedilirken yapılaxak işlemler de destroy() yüntemini yeniden yazarak belirtilebilir.

Servletlerin herhangi bir protokol kullanılarak işlem yapılabilmesi düşünülmüştür. Ancak özellikle HTTP (Metin Ötesi Aktarım Protokolü) ile çalışabilecek servlet sınıfı da bulunmaktadır. Geliştiriciler CGI'da bulunan ve HTMLformalında belirtilen GET ve POST gibi yöntemlere de ayrı ayrı hizmet verebilirler.

Servletlerin Çalıştırılması

Bir servletin adı (veya kendisinin takma adı [alias’ı]) tarayıcıların adres alanından girilirse veya servletin bulunduğu yeri belirten URL bulunan bir bağlantı tıklandığında servlet motoru servlet sınıfının bir örnyğini (eğer daha önce yaratılmamışsa) yaratır. Da ha sonra servletinn başla (init()) yöntemi çağrılır. Tarayıcıdan gelen istekten servlete verilmek üzere İstek (Request) sınıfı yaratılır. Servletin çıktı verebileceği bir Yanıt (Response) sınıfı da yaratılarak servlin service() yöntemi çağrılır. Bunda sonra yapılacak işlerin kontrolü servlete geçer. İsteği anlamak, işlemek ve yanıtlamak dışında servlet içerisinde hiç bir işlem yapılmaz. HTTP protokolü, sunucu ve tarayıcının çalışması servlete tamamen şeffaftır.

Servletlerin güvenlik veya eşanlılama sorunları gibi nedenlerle sadece tek bir örneğinin yaratılması için SingleThreadedModel arayüzü uygulanabilir. Bu durumda aynı servlete ikinci bir istek geldiğinde öncekinin yanıtı alınmadan sonraki devreye sokulmaz.

Aynı motorda çalışana servletler birbirinden haberdar olabilir, veri paylaşabilir veya birbirlerine yönlendirme yapabilirler. Ancak bu gibi işlemler için servlet kütüphaneleri fazla bir yardım getirmediklerinden, programcı servletlerin arasındaki paylaşım ve iletişimle ilgili sorunlar çıkması durumlarını kendisi idare etmek durumundadır.

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır