SERVLET nedir ?
Merhaba Arkadaşlar,
Servlet bir java class’ıdır. JSP’ler ile kullanılan ve web server tarafında çalışan bu class’ların amacı sunucu ve istemci arasında dinamik yapı kurmaktır.
Yapı aşağıdaki gibidir. Şimdi burada şöyle bir şey yapacağım. 2 3 parçada servlet’in nasıl çalıştığı, static ve dinamic bir sayfanın nasıl çalıştığını anlatacağım. Buraya kısa zamanda bu yazıları ekleyeceğim. Şimdilik http protokol ile haberleşiyorlar.
JSP’nin işi gösterim ve servlet’in işi backend kısmıdır. Servlet her istek için Tek Servlet instance , farklı Thread , farklı request ve response nesneleri kullanılır.
*Servlet’in Görevleri
Servlet’in görevlerini birkaç madde ile şöyle sıralayabiliriz ;
- Client(Browser)’dan açık(explicit) şekilde bilgi okur. Bu bilgi Web page’den html ile gelen bilgi de olabilir yada Applet yada diger HTTP Client programlarından olabilir.
- Kapalı(implicit) olarak data döndürür.Bu cookie, media yada browserin anlayabileceği baska data da olabilir.
- Datayı kullanrak sonuç üretir , database’ye bağlanabilir yada bir web service’i call edebilir.
- Responce olarak istemciye ; Html , cookie ayarları , cashing parametreleri vs. gibi veriler döndürebilir.
*Servlet Contaıner’ın görevleri
Web Serverin görevinin en temel tanımı , gelen request isteği karşılayıp response olarak cevap döndürmektir. Web Server Html dilini bilir ve Http protokolu ile çalışır. Biz Apache Web Server kullanacagız . Servlet ve Jsp dosyalarını koşturmaya yarayan web server olarak Tomcat kullanıcaz. Not : Web Server ile Application Server aynı şey değildir .App Serverin ek özellikleri vardır.Şimdilik bunu bilelim. Görevleri ;
- İletişim; Servlet ile Web Server arasındaki iletişimden sorumldur.
- Lifecycle; Servletin yaşam döngüsü tamamen Contaıner’in gorevindedir . Servletin yüklenmesi , initalize edilmesi ve destroy edilerek sonlanması contaıner’in gorevleridir.
- MultiThread Support; Contaıner’ın her request için aynı Servlet üzerinde çalışacak farklı Thread’ler oluşturacagını soylemiştik.
- Declaretive Security; Contaıner , web.xml dosyasını olusturur. Bu sayede hard-code yazılmadan , programın güvenirliği sağlanmış olur.
- Jsp Support; Jsp sayfalarının Java sınıflarına dönüşmesini Contaıner üstlenir.
Kısaca Contaıner’ın görevi ; İstek gelir -> Contaıner bu isteği karşılar -> İlgili Servlet ile eşlenir bu istek -> Servlet’in bir objesi olusturulur ve ilk kullanıma hazırlama için initilaize edilir -> Daha sonra service() methodu çağrılır ve gelen request’in tipine göre gerekli doPost,doGet yada doXXX methodunu çağırır ve request ve response objeleri methoda paslar. Ve gerekli işlemler method içerisinde yapılır.
Yukarıda soylediğim bir Servlet’in ilk olusuturulma anı için gerçekleşen adımlardır . Servlet eger initalize edilmişse service() methodundan adımlar devam eder.





