Java Servlet Nedir? – Java Dersleri

0
1745
Java Servlet Nedir? - Java Dersleri
Java Servlet Nedir? - Java Dersleri

Java Web teknolojisinin temelini anlamak için Java Servlet kavramını inceleyeceğiz. Java Servlet kavramı Java EE tarafında sıkça kullanılıyor. Çünkü projelerin neredeyse tamamı web platformları üzerinde. Peki, nedir bu Java Servlet?

Servlet Nedir?

Servletler, bir Web veya uygulama sunucusu üzerinde çalışan ve bir Web tarayıcısından veya başka bir HTTP istemcisinden gelen istekler ile HTTP sunucusu üzerindeki veritabanları veya uygulamalar arasında orta bir katman gibi davranan programlardır. (Çok karmaşık gelmiş olabilir bu tanım, şekil ile açıklayalım 🙂 )

Servlet, dinamik bir web uygulaması oluşturmak için sunucu (server) üzerinde uygulamayı çalıştıran bir web bileşenidir. Servlet bir Java sınıfıdır.

Servlet Kullanmanın Avantajları Nelerdir?

  • Daha iyi bir performans sağlar.
  • Servletler, her istemci (client) isteğini karşılamak için ayrı bir işlem (process) oluşturmaya ihtiyaç duymaz.
  • Javada yazıldığı için Servetler platform bağımsızdır.
  • Sunucu üzerindeki Java güvenlik yöneticisi, bir sunucu makinesindeki kaynakları korumak için bir dizi kısıtlama uygular. Bu yüzden servletler güvenilirdir.
  • Java sınıfı kütüphaneleri tam fonksiyonelliği bir servlet tarafından kullanılabilir. Yani database, grafiksel arayüz (applet) vb. sınıflar ile iletişim kurabilir.

Servletlerin Yapabilecekleri

  • İstemciler (clients) / Tarayıcılar tarafından gönderilen açık (explicit) verileri okuyun. Bir web sayfası üzerindeki form verileri veya bir arayüz (applet) üzerinden gelen veriler.
  • İstemciler (clients) / Tarayıcılar tarafından gönderilen kapalı (implicit) HTTP istek verilerini okuyun. Bu istekler tarayıcının anladığı çerezleri, medya türlerini ve sıkıştırma şemalarını içerir.
  • Verileri işleyin ve sonuçları oluşturun. Bu aşamada veritabanı ile bağlantı kurmanız gerekebilir.
  • İstemcilere (clients) / Tarayıcılara açık veriler gönderin. HTML, XML, .gif ve EXCEL gibi
  • İstemcilere (clients) / Tarayıcılara kapalı HTTP yanıtları gönderin. (Çerezler (cookies) ve cache paratmeleri gibi)

Servetler, büyük ölçekli geliştirme projelerini destekleyen Java sınıf kütüphanelerinin genişletilmiş bir versiyonu olan Java Enterprise Edition’un (Kurumsal Sürüm) standart bir parçası olan javax.servlet ve javax.servlet.http paketleri kullanılarak oluşturulabilir.



Servlet Yaşam Döngüsü

  • Servlet, init() metotu çağrılarak başlatılır (initialize).
  • Servlet, bir istemcinin isteğini işlemek için service() metotunu çağırır.
  • Servlet, destroy() metotu çağrılarak sonlanır (terminate).
  • Sonunda, servlet Java Sanal Makinesinin (JVM) çöp toplayıcısı (garbage collector) tarafından toplanan çöptür.

init() Metotu

init() moetotu sadece bir kez çağrılır. Sadece servlet oluşturulduğunda init() metotu çağrılır ve daha sonra herhangi bir kullanıcı istekleri için çağrılmaz.

Servlet normalde bir kullanıcı servlet’e karşılık gelen bir URL’i ilk kez çağırdığında oluşturulur ancak, sunucu ilk başlatıldığında servlet yüklenmesini dahi belirtebilirsiniz.

init() metot imzası:

public void init() throws ServletException {
   // Initialization code...
}

service() Metotu

Service metotu, asıl görevleri gerçekleştirmek için ana metottur. Servlet konteyneri, istemciden(tarayıcılardan) genlen istekleri karşılamak ve istemciye yanıt dönmek için service() metotunu çağırır.

Service metotu, HTTP istek tipini (GET, POST, PUT, DELETE vb.) kontrol eder ve doGet, doPost, doPut, doDelete gibi metotları uygun şekilde çağırır.

service metot imzası:

public void service(ServletRequest request, ServletResponse response) 
   throws ServletException, IOException {
}

doGet() Metotu

Bir GET isteği, normal bir URL isteğinden veya tanımlanmış metotu olmayan bir HTML formundan kaynaklanır ve doGet() metotu tarafından karşılanmalıdır.

public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
   // Servlet code
}

doPost() Metotu

Bir POST isteği, metot olarak POST alan bir HTML formundan kaynaklanır ve doPost() metotu tarafından karşılanmalıdır.

public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
   // Servlet code
}

destroy() Metotu

Destroy metotu, servletin yaşam döngüsünün en sonunda sadece bir kez çağrılır. Bu metot, veritabanı bağlantılarını kapatmak, arka plandaki threadleri durdurmak vb. işleri yapmak için servlet’e bir şans verir.

Destroy metotu çağrıldıktan sonra, servlet nesnesi çöp toplama (garbage collection) için işaretlenir.

destroy metotu tanımlaması:

public void destroy() {
   // Finalization code...
}


Yararlandığım Kaynaklar

https://www.tutorialspoint.com/servlets/index.htm

https://docs.oracle.com/javaee/7/api/javax/servlet/Servlet.html

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz