JSP Yaşam Döngüsü

JSP Yaşam Döngüsü nedir?
JSP Yaşam Döngüsü, JSP Sayfasının servlet'e çevrilmesi olarak tanımlanır, çünkü bir JSP Sayfasının hizmet isteklerini işlemek için önce servlet'e dönüştürülmesi gerekir. Yaşam Döngüsü JSP'nin yaratılmasıyla başlar ve dağılmasıyla sona erer.
JSP Yaşam Döngüsünün Farklı Aşamaları
Tarayıcı bir JSP istediğinde, JSP motoru öncelikle sayfayı derlemesi gerekip gerekmediğini kontrol eder. JSP en son derlendiyse veya JSP'de son değişiklik yapıldıysa, JSP motoru sayfayı derler.
JSP sayfasının derlenme süreci üç adımdan oluşur:
- JSP'nin ayrıştırılması
- JSP'yi servlet'e dönüştürme
- Servlet'in derlenmesi
JSP Yaşam Döngüsü Diyagramı
JSP Yaşam Döngüsü aşağıdaki şemada gösterilmektedir.
Aşağıdaki adımlar JSP'nin yaşam döngüsünü açıklamaktadır:
- JSP sayfasının çevirisi
- JSP sayfasının derlenmesi(JSP sayfasının _jsp.java'ya derlenmesi)
- Sınıf yükleme (_jsp.java, _jsp.class sınıf dosyasına dönüştürülür)
- Örnekleme (Oluşturulan sunucu uygulamasının nesnesi oluşturulur)
- Başlatma(
_jspinit()yöntem konteyner tarafından çağrılır) - Talep İşleme(
_jspservice()yöntem konteyner tarafından çağrılır) - Tahrip etmek (
_jspDestroy()kapsayıcı tarafından çağrılan yöntem)
Yukarıdaki noktalar hakkında daha ayrıntılı bir özet verelim:
1) JSP Sayfasının Çevirisi:
A Java servlet dosyası bir JSP kaynak dosyasından oluşturulur. Bu JSP yaşam döngüsünün ilk adımıdır. Çeviri aşamasında konteyner, JSP sayfasının ve etiket dosyalarının sözdizimsel doğruluğunu doğrular.
- JSP konteyneri, bu JSP sayfasında kullanılan standart yönergeleri ve eylemleri ve etiket kitaplıklarına başvuran özel eylemleri yorumlar (hepsi JSP sayfasının bir parçasıdır ve sonraki bölümde ele alınacaktır).
- Yukarıdaki resimli anlatımda ilk adımda demo.jsp, demo_jsp.java'ya çevrilmiştir.
- Aşağıda gösterilen “demo.jsp” örneğini ele alalım:
Demo.jsp
<html> <head> <title>Demo JSP</title> </head> <% int demvar=0;%> <body> Count is: <% Out.println(demovar++); %> <body> </html>
Code Demo.jsp için açıklama
Code Hat 1: html başlangıç etiketi
Code Hat 2: Başlık etiketi
Code Satır 3 – 4: Başlık Etiketi yani Demo JSP ve kapanış head etiketi
Code Satır 5 – 6: Değişken demosunun başlatıldığı Scriptlet etiketi
Code Satır 7 – 8: Body etiketinde çıktıda yazdırılacak metin (Sayı: )
Code Çizgi 9: Demovar değişkeninin artan değerle yazdırılmaya çalışıldığı komut dosyası etiketi
Code 10-11. satırlar: Gövde ve HTML etiketleri kapatıldı
Demo JSP Sayfası aşağıdaki kodda demo_jsp servlet'e dönüştürülmüştür.
Code Demo_jsp.java için açıklama
Code Hat 1: Servlet sınıfı demo_jsp, HttpServlet ana sınıfını genişletiyor
Code Satır 2 – 3: Parametre olarak HttpServletRequest ve HttpServletResponse nesnelerine sahip jsp yani _jspservice'in hizmet yöntemini geçersiz kılma
Code Hat 4: Açma yöntemi
Code Hat 5: Yöntemin çağrılması getWriter() Yanıt nesnesinden yazdırma işlemini almak içinWriternesne (nesnelerin biçimlendirilmiş gösterimini metin çıktı akışına yazdırır)
Code Hat 6: İçerik türünü ayarlamak için yanıt nesnesinin setContentType yönteminin çağrılması
Code Hat 7: Kullanma write() Yazdırma yöntemiWriter HTML'i ayrıştırmaya çalışan nesne
Code Hat 8: Demovar değişkeni 0 olarak başlatılıyor
Code Hat 9: Arıyor write() Yazdırma yöntemiWriter metni ayrıştırmak için nesne
Code Hat 10: Arıyor print() Yazdırma yöntemiWriter demovar değişkenini 0+1=1'den başlayarak artırmak için bir nesne kullanılır. Dolayısıyla çıktı 1 olacaktır.
Code Hat 11: Kullanma write() Yazdırma yöntemiWriter HTML'i ayrıştırmaya çalışan nesne
Çıktı:
- Burada ekran görüntüsünde Çıkışın 1 olduğunu görebilirsiniz çünkü demvar 0 olarak başlatıldı ve ardından 0+1=1 olarak artırıldı
Yukarıdaki örnekte,
- demo.jsp, bir değişkenin başlatıldığı ve artırıldığı bir JSP'dir. Bu JSP, servlet'e (demo_jsp.class) dönüştürülür; burada JSP motoru, JSP Sayfasını yükler ve servlet içeriğine dönüştürür.
- Dönüşüm gerçekleştiğinde tüm şablon metni şuna dönüştürülür:
println()açıklamalar ve hepsi JSP öğeleri dönüştürüldü Java kodu.
Basit bir JSP sayfasının servlet sınıfına çevrilmesi bu şekildedir.
2) JSP Sayfasının Derlenmesi
- Oluşturulan Java servlet dosyası, Java servlet sınıfına derlenir.
- Java kaynak sayfasının uygulama sınıfına çevrilmesi, JSP sayfasının kapsayıcıya konuşlandırılması ile JSP sayfasının işlenmesi arasında herhangi bir zamanda gerçekleşebilir.
- Yukarıdaki resimli açıklamada demo_jsp.java, demo_jsp.class sınıf dosyasına derlenmiştir.
3) Sınıf yükleme
- JSP kaynağından yüklenen Servlet sınıfı artık konteynere yüklendi
4) Örnekleme
- Bu adımda nesne yani sınıfın örneği oluşturulur.
- Konteyner, isteklere ve diğer olaylara yanıt olarak bu sınıfın bir veya daha fazla örneğini yönetir. Genellikle bir JSP kapsayıcısı, bir sunucu uygulaması kapsayıcısı kullanılarak oluşturulur. JSP konteyneri, hem JSP'yi hem de servlet'i desteklediği için servlet konteynerinin bir uzantısıdır.
- Konteyner tarafından sağlanan bir JSPPage arayüzü şunları sağlar:
init()hem dedestroy()yöntemleri. - HTTP isteklerine hizmet eden bir HttpJSPPage arayüzü vardır ve aynı zamanda servis yöntemini de içerir.
5) Başlatma
public void jspInit()
{
//initializing the code
}
_jspinit()yöntemi, JSP'den oluşturulan servlet örneğini başlatacak ve bu aşamada konteyner tarafından çağrılacaktır.- Örnek oluşturulduktan hemen sonra init yöntemi çağrılacak
- JSP yaşam döngüsü boyunca yalnızca bir kez çağrılır, başlatma yöntemi yukarıda gösterildiği gibi bildirilir.
6) Talep İşleme
void _jspservice(HttpServletRequest request HttpServletResponse response)
{
//handling all request and responses
}
_jspservice()yöntem, JSP sayfasının yaşam döngüsü boyunca ortaya çıkardığı tüm istekler için konteyner tarafından çağrılır.- Bu aşama için yukarıdaki aşamaların tümünden geçmesi gerekir ve ardından yalnızca servis yöntemi çağrılabilir.
- İstek ve yanıt nesnelerini iletir
- Bu yöntem geçersiz kılınamaz
- Yöntem yukarıda gösterilmiştir: GET, POST vb. gibi tüm HTTP yöntemlerinin oluşturulmasından sorumludur.
7) Yok et
public void _jspdestroy()
{
//all clean up code
}
_jspdestroy()yöntem aynı zamanda konteyner tarafından da çağrılır- Bu yöntem, kapsayıcı, isteklere hizmet vermek için artık sunucu uygulaması örneğine ihtiyaç duymadığına karar verdiğinde çağrılır.
- Bu durumda destroy metoduna çağrı yapıldığında servlet çöp toplama işlemine hazır hale gelir.
- Bu yaşam döngüsünün sonudur.
- Geçersiz kılabiliriz
jspdestroy()Veritabanı bağlantılarını serbest bırakmak veya açık dosyaları kapatmak gibi herhangi bir temizleme işlemi gerçekleştirdiğimizde yöntem.



