Java Servlet nedir? Ne işe yarar?

in #tr6 years ago (edited)

Servlet

Servletler Java web ve uygulama sunucularında (server) çalışan, istemcilerden (client) gelen istekler ile HTTP sunucularındaki veritabanları ve uygulamalar arasındaki ara katmandır.
Servlet Diagram.jpg
Servletler aşağıdaki işleri yapar:

  • İstemci tarafından gönderilen açık verileri okur. (Form verileri mesela)
  • Tarayıcı (browser) tarafından gönderilen kapalı HTTP istek verilerini okur. (Cookieler gibi)
  • Sonuçlar üretir. (Veritabanından alınan verinin kullanıcılara uygun şekilde iletilmesi.)
  • İstemciye açık veri gönderir. (*.docx, *.gif gibi)
  • HTTP yanıt verileri gönderir. (Cookieler göndermek gibi)
    Servletlerin bildiğimiz Java kod syntax'ından farkı yoktur. Yalnızca farklı API'ler kullanırız. Servletler standart HttpServlet sınıfına extend eder.

Servlet Yaşam Döngüsü

lifecycle.jpg
Inıt() Metodu
Bu metot servlet yaratıldığı anda bir kere çağırılır ve tekrar çağırılmaz. Servletler normalde kendisini işaret eden URL çalıştırıldığında yaratıır fakat server çalışmaya başladığı anda da yaratabiliriz.
Service() Metodu
Bu metot asıl işi yapan metottur. Sunucu, istemciden gelen istekleri almak ve yanıt verebilmek için bu metodu çalıştırır. Sunucuya bir servlet için gelen her istekte sunucu yeni bir thread başlatır ve service metodunu çağırır. Service metodu ise gelen isteğe göre doGet() veya doPost() metodunu çalıştırır. Dolayısıyla service() metodunu çağırmamıza gerek yoktur. Yalnızca doGet() ve/veya doPut() metodlarını override ederiz.
doGet() Metodu
GET istekleri için kullanılır.
doPost() Metodu
POST istekleri için kullanılır.
destroy() Metodu
Bu metot da aynı init() metodu gibi yalnızca bir kere çalıştırılır. Servletin yaşam döngüsü bitmeden veritabanı bağlantılarının kapatılması, threadlerin durdurulması gib işlemler için çalıştırılır. Core Java'daki finalize() metodu gibidir. doDestroy() metodu çalıştırıldıktan sonra garbage collection'ın ilgilenmesi için işaretlenir.

Yararlanılan Kaynaklar

Sort:  

Merhaba ben @osmania, @kusadasi ve @try-market küratörü olarak #tr ve #cointurk etiketlerindeki kaliteli yazıları inceliyorum. Sonrasında bu yazılar @kusadasi veya @try-market hesapları tarafından upvote ediliyor. @kusadasi ve @try-market #tr etiketinin daha yukarılara çıkması için çok büyük bir çaba içerisindedir. Tabii ki bu ilerleyişin kaliteli yazılarla olması yönünde çaba harcıyoruz.Paylaşımlarınıza 'cointurk' etiketini ekleyerek @kusadasi ve @try-market tarafından desteklenmesini sağlayabilirsiniz. Ayrıca, sürekli olarak @kusadasi tarafından düzenlenen projeler ve discord kanalımızda anlık yarışmalar mevcuttur.
Katılmak isterseniz discord kanalımıza buradan ulaşabilirsiniz.

Teşekkürler haber verdiğiniz için. İyi çalışmalar.

Congratulations @daxene! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received

Click on any badge to view your Board of Honor.

To support your work, I also upvoted your post!
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last announcement from @steemitboard!

Do you like SteemitBoard's project? Vote for its witness and get one more award!