01 Servlet Giriş

HTTP_ClientServerSystem

Servlet’lerin Temeli

Servlet’ler Web Server tarafından çalıştırılan programlardır . Aslında Servlet bir Java class’ından farksız değildir

Öncelikle Servlet’in faydalarını anlamak için Web tarayıcı ise Sunucu tarafı arasındaki iletişimi anlamak gereklidir.

Servlet’lerden daha eski bir teknoloji olan Applet’ler yardımı ile Web tarayıcısının işlevleri artırılabilinmişti. Servlet’ler yardımı ile de Web Serverin fonksiyonelliği dinamil olarak artırıldı.

 

Web Tarayıcısı ile Sunucular nasıl anlaşır ona bir bakalım ?

Static bir web page için düşünecek olursak eğer ;

  1. Kullanıcı ilgili sayfanın Url’sini tarayıcıya girer.
  2. Tarayıcı bu istek için Sunucuya bir Http(Hyper-Text Transfer Protocol) talebi üretir.
  3. Web Sunucusu bu talebi alır ve ilgili dosya ile eşler.
  4. Bu dosya , Http yanıtı için tarayıcıya döndürülür. Bu yanıtın header(başlık) ‘da içeriğin tipine işaret edilir.
    Bu içerik text , resim yada baska bir şey olabilir. Bunlara MIME type denilir. Bilgi için buraya bakınız .
    İçerik html kaynak kodu ise MIME type text/html olur.

 

Dynamic bir web page için düşünecek olursak eğer ;

Static web sayfları genelde yeterli olmaz.Her kullanıcı aynı sayfayı görür.Bir kurum bilgileri tutmak için online bir veri bankası kurmak isteyebilir database tarafına.Bu durumda bilgilerin güncel olarak db’den alınması ve dynamic olarak gösterilmesi gerekir.

Not : Web’in ilk zamanlarında CGI kullanılırdı . CGI , her request talebi için ayrı proses olusturdugu icin ciddi performans kaybına ugrardı.Bellek kaynaklarının şişmesi ve maliyetlerın artması da diğer bir faktor oldu Servlet ve diğer tekniklerin ortaya çıkmasında.

Servlet’lerin CGI’ye göre avantajları

  • CGI’ye ( Common Gateway Interface ) göre belirgin performans üstünlüğü .
  • Her istemci için ayrı proses olusturmaz.(Servlet’ler tek Servlet instance üzerinde ve farklı Thread kanallarında çalışır , daha sonra detaylı deginicez)
  • Java ile yazıldıgından platform bağımsızdır ve taşınabilirdir.
  • Sunucularda Java güvenlik yöneticisi kaynakları korumak için kısıtlamalar sağlar.Olay JVM kontrolunde oldugundan ciddi güvenlik gerektiren uygulamar geliştirilebilinir.
  • Java’nın tüm gücü rahatlıkla kullanılabilinir
  • Servlet’ler  ; applet’ler , database yada diğer yazılımlar ile iletişime geçebilir.

Servlet’ler Http protocol’ü ile çalışır . İstemci ve Sunucu Http ile anlaşır . İstemci bir istek yollar ve Sunucu bu isteğe karşılık dynamic bir cevap döner.

HTTP_ClientServerSystem

Server-Side teknolojisi

Sunucu tarafında çalışan programlardır desek yanlıs olmaz.Bu programlar web server’da çalışan uygulamalardır.

Java’ın server-side teknolojileri için Servlet en ‘temel’ olarak görev alır. Diğer Java teknolojileri öğrenmeden önce Servlet mantıgının anlasılması lazımdır.Diğer Java Server-Side teknolojilerinin kaynağı yine Servlet’tir.

Apache Tomcat

Dynamic web sayfaları olusturmak icin bir web sunucusuna ihtiyacımız olacaktır.Yazılarımız süresince biz Tomcat kullanmıs olucagız.

Servlet’ler Server’da çalışır.Farklı Serverlarda mevcuttur.Ama sektorel bazda %40’lara varan boyutlarda projelerde Tomcat kullanılır.Bizde öyle yapıcaz

Apache Tomcat ücretsiz ve open source bir server’dir.Daha fazla bilgi için : http://tomcat.apache.org/
Tomcat varsayılan olarak 8080 portunu kullanır.Portların çakışması durumunda bunu değiştirebiliriz.

Tomcat  , Servlet ve Jsp için offical spesifikasyonu gerçekler .

Daha sonra Tomcat kurulumu ve Servlet Contaıer olan Tomcatin görevlerinden bahsediyor olucaz.

HTTP

Öncelikle Servlet’lerin Htpp protokol’ü ile çalıştığını bilmemiz gerekir.Eğer Http protokol’ünü bilemez isek diğer http protocol’ünü kullanan server-side yapılarını(Servlet,Jsp,Asp,Php) da anlamamız güçleşecektir.

Kısaca ifade etmek gerekirse ; Http , request(istek) ve response(cevap). Client yani istemci bir request yollar ve buna karsılık olarak bir response döner.

Dönen mesaj iki kısımdan oluşur.Bunlar ; header ve body’den olusur. Mesajın header kısmı bize mesaj ile bilgi sağlar.Header’lar name-value ile taşınır.Şimdilik fazla girmeyelim o konulara.

 

Servlet&Jsp ‘ye başlamak için neler gerekli ?

  • Java bilinmeli , en az orta seviye 🙂
  • Http
  • Apache Tomcat
  • Database(sql) bilgisi

Gibi yapıların bilinmesi bu süreci kolaylaştıracaktır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*