JSP & Servlet – Servlet Lifecycle
Servlet Lifecycle’de gerçekleşen olaylar
Bir Servlet’in yasam döngüsü 5 adımdan ibarettir ;
- Servlet sınıfının yüklenmsi
- Servlet objesinin oluşturulması
- init methodunun çağrılması
- service methodunun çağrılması
- destroymethodunun çağrılması
* İlgili Servlet class’ımızWeb Contaınertarafından bulunur ve yüklenir. Servlet Contaıner iligli servlet’i projemiz için önemli bir konfigurasyon dosyası olandeployment descriptor (web.xml)de arar. Eğer iligli Servlet bulunamaz ise404 not foundgibi bir hata ile karsılasırız.
* Daha sonra Servlet’imizin bir objesi olusturulur. Unutmayalım ki Servlet objesi sadece bir ddefa olusturulur.
* Sıradaki adım da iseinit()methodu cagrılır.init()methoduServlet’iilk kullanıma hazırlar. Bu method servlet yaşam döngüsü içerisinde sadece bir defa çağrılır.init()methodu tamamlandıgında Servlet’imiz artık istekleri karsılamaya hazıdır.
1 | public void init(ServletConfig config) throws ServletException |
*service()methodu ile beraber Servlet istekleri işler.service()methodu gelenHTTPmethodu tipine göre Servletimizde bulunadoXXX()methodunu çağırır. Unutmayalım ki her bir istek aynı servlet üzerinde farklı thread’larda çalışır.service()methodu iki obje barındırır. Bunlar ;requestveresponseobjeleridir. Bu objeler ilgilidoXXX()methoduna çağrılırken parametre olarak yollanır.
1 2 | public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException |
* Son olarakdestroy()methodu ile Servlet’imiz ölür
. Servlet’in kullandıgı kaynaklar serbest bıraklılır . Bu methodunda servlet yaşam döngüsünde sadece birkez çağrıldıgını unutmayalım.
1 | public void destroy() |
Destroy methodu ile ilgili Trick ;
*destroy()methodu şu durumlarda çağrılır ;
- Contaıneryadaapplicatonkapandıgında.
- Contaınerbellek sıkıntısı olustuguna karar verdiginde(Servlet yasam dongusu tamamıyla Servlet Contaıner’in elindedir).
- Servletuzun sürerequestalamadıgında.
Yazımızda dikkat etmemiz gereken birkaç noktayı belirterek yazımızı sonlandıralım;
- Servlet’inyaşam döngüsündenServletContaıner’ısorumludur.
- Servletinit()methodu çalışmasını tamamlayana kadar istekleri karşılayamaz.
- Servlet’inyaşam döngüsünde ;servlet class’ın yüklenmsi ,servlet’in ilk kullanımınahazırlanması ,init()methodu vedestroy()methodu sadece bir kez çağrılır.
- Servletobjesi bir kez olusturulur ve herrequestalındıgında aynıServletobjesi üzerinde işlem yapılır. Örneğin ; A istegi threadA , B istegi threadB ile aynı servlet üzerinde çalışır.
* Yazımız burada sonlandı arkadaslar. Bir sonraki yazıdaServletConfigveServletContextkonularına deginicez insaAllah.
* Mutlu kalın , kod’la kalın ve bol bol





