जेएसपी जीवन चक्र

जेएसपी जीवन चक्र

जेएसपी जीवनचक्र क्या है?

JSP जीवन चक्र को JSP पेज को सर्वलेट में बदलने के रूप में परिभाषित किया जाता है क्योंकि सेवा अनुरोधों को संसाधित करने के लिए JSP पेज को पहले सर्वलेट में बदलना पड़ता है। जीवन चक्र JSP के निर्माण से शुरू होता है और उसके विघटन के साथ समाप्त होता है।

जेएसपी जीवन चक्र के विभिन्न चरण

जब ब्राउज़र JSP के लिए पूछता है, तो JSP इंजन सबसे पहले यह जाँचता है कि उसे पेज को संकलित करने की आवश्यकता है या नहीं। यदि JSP अंतिम बार संकलित किया गया है या JSP में हाल ही में संशोधन किया गया है, तो JSP इंजन पेज को संकलित करता है।

JSP पृष्ठ की संकलन प्रक्रिया में तीन चरण शामिल हैं:

  • जेएसपी की पार्सिंग
  • JSP को सर्वलेट में बदलना
  • सर्वलेट संकलित करना

जेएसपी जीवन चक्र आरेख

JSP जीवनचक्र नीचे दिए गए चित्र में दर्शाया गया है।

जेएसपी जीवन चक्र

निम्नलिखित चरण JSP के जीवन चक्र की व्याख्या करते हैं:

  1. जेएसपी पृष्ठ का अनुवाद
  2. जेएसपी पृष्ठ का संकलन(जेएसपी पृष्ठ का _jsp.java में संकलन)
  3. क्लासलोडिंग (_jsp.java को क्लास फ़ाइल _jsp.class में परिवर्तित किया जाता है)
  4. इन्स्टेन्शियेशन (उत्पन्न सर्वलेट का ऑब्जेक्ट बनाया गया है)
  5. आरंभीकरण(_jspinit() विधि कंटेनर द्वारा लागू की जाती है)
  6. अनुरोध प्रसंस्करण(_jspservice() विधि कंटेनर द्वारा लागू की जाती है)
  7. नष्ट करना (_jspDestroy() कंटेनर द्वारा लागू की गई विधि)

आइये उपरोक्त बिंदुओं पर अधिक विस्तृत सारांश देखें:

1) जेएसपी पृष्ठ का अनुवाद:

A Java सर्वलेट फ़ाइल JSP स्रोत फ़ाइल से उत्पन्न होती है। यह JSP जीवन चक्र का पहला चरण है। अनुवाद चरण में, कंटेनर JSP पृष्ठ और टैग फ़ाइलों की वाक्यविन्यास शुद्धता को मान्य करता है।

  • JSP कंटेनर मानक निर्देशों और क्रियाओं, तथा कस्टम क्रियाओं को संदर्भित टैग लाइब्रेरीज़ (वे सभी JSP पृष्ठ का भाग हैं और बाद के अनुभाग में उन पर चर्चा की जाएगी) की व्याख्या करता है, जिनका उपयोग इस JSP पृष्ठ में किया जाता है।
  • उपरोक्त चित्रात्मक विवरण में, पहले चरण में demo.jsp को demo_jsp.java में अनुवादित किया गया है
  • आइए नीचे दिखाए अनुसार “demo.jsp” का एक उदाहरण लें:

डेमो.jsp

<html>
<head>
<title>Demo JSP</title>
</head>
<%
int demvar=0;%>
<body>
Count is:
<% Out.println(demovar++); %>
<body>
</html>

Demo.jsp के लिए कोड स्पष्टीकरण

कोड लाइन 1: html प्रारंभ टैग

कोड लाइन 2: हेड टैग

कोड लाइन 3 – 4: शीर्षक टैग अर्थात डेमो JSP और समापन हेड टैग

कोड लाइन 5 – 6: स्क्रिप्टलेट टैग जिसमें डेमो चर को आरंभीकृत किया जाता है

कोड लाइन 7 – 8: बॉडी टैग में, आउटपुट में मुद्रित किया जाने वाला पाठ (गणना है:)

कोड लाइन 9: स्क्रिपलेट टैग जहां पर डेमोवर चर को बढ़े हुए मान के साथ प्रिंट करने का प्रयास किया जा रहा है

कोड लाइन 10 – 11: मुख्य भाग और HTML टैग बंद कर दिए गए

नीचे दिए गए कोड में डेमो JSP पेज को demo_jsp सर्वलेट में परिवर्तित किया गया है।

जेएसपी जीवन चक्र

Demo_jsp.java के लिए कोड स्पष्टीकरण

कोड लाइन 1: सर्वलेट क्लास demo_jsp पैरेंट क्लास HttpServlet का विस्तार कर रहा है

कोड लाइन 2 – 3: jsp की सेवा विधि को ओवरराइड करना अर्थात _jspservice जिसके पैरामीटर के रूप में HttpServletRequest और HttpServletResponse ऑब्जेक्ट हैं

कोड लाइन 4: खोलने की विधि

कोड लाइन 5: विधि को कॉल करना getWriter() PrintWriterobject प्राप्त करने के लिए प्रतिक्रिया ऑब्जेक्ट का (ऑब्जेक्ट के स्वरूपित प्रतिनिधित्व को टेक्स्ट आउटपुट स्ट्रीम में प्रिंट करता है)

कोड लाइन 6: सामग्री प्रकार सेट करने के लिए प्रतिक्रिया ऑब्जेक्ट की setContentType विधि को कॉल करना

कोड लाइन 7: का उपयोग करना write() प्रिंटराइटर ऑब्जेक्ट की विधि HTML को पार्स करने का प्रयास कर रही है

कोड लाइन 8: demovar चर को 0 पर आरंभ किया जा रहा है

कोड लाइन 9: कॉलिंग write() टेक्स्ट को पार्स करने के लिए PrintWriter ऑब्जेक्ट की विधि

कोड लाइन 10: कॉलिंग print() PrintWriter ऑब्जेक्ट की विधि का उपयोग करके demovar चर को 0+1=1 से बढ़ाया जाता है। अतः आउटपुट 1 होगा

कोड लाइन 11: का उपयोग करना write() प्रिंटराइटर ऑब्जेक्ट की विधि HTML को पार्स करने का प्रयास कर रही है

आउटपुट:

जेएसपी जीवन चक्र

  • यहाँ आप देख सकते हैं कि स्क्रीनशॉट में आउटपुट 1 है क्योंकि demvar को 0 से आरंभ किया गया है और फिर 0 + 1 = 1 तक बढ़ाया गया है

उपरोक्त उदाहरण में,

  • demo.jsp, एक JSP है जहाँ एक चर को आरंभीकृत और बढ़ाया जाता है। इस JSP को सर्वलेट (demo_jsp.class) में परिवर्तित किया जाता है, जहाँ JSP इंजन JSP पेज को लोड करता है और सर्वलेट सामग्री में परिवर्तित करता है।
  • जब रूपांतरण होता है तो सभी टेम्पलेट पाठ परिवर्तित हो जाता है println() बयान और सभी जेएसपी तत्व में परिवर्तित हो जाते हैं Java कोड।

इस प्रकार एक सरल JSP पृष्ठ को सर्वलेट क्लास में अनुवादित किया जाता है।

2) जेएसपी पेज का संकलन

  • उत्पन्न जावा सर्वलेट फ़ाइल को जावा सर्वलेट क्लास में संकलित किया जाता है
  • जावा स्रोत पृष्ठ का उसके कार्यान्वयन वर्ग में अनुवाद, JSP पृष्ठ के कंटेनर में परिनियोजन और JSP पृष्ठ के प्रसंस्करण के बीच किसी भी समय हो सकता है।
  • उपरोक्त चित्रात्मक विवरण में demo_jsp.java को एक क्लास फ़ाइल demo_jsp.class में संकलित किया गया है

3) क्लास लोडिंग

  • JSP स्रोत से लोड किया गया सर्वलेट क्लास अब कंटेनर में लोड हो गया है

4) इन्स्टेन्शियेशन

  • इस चरण में ऑब्जेक्ट अर्थात क्लास का उदाहरण तैयार किया जाता है।
  • कंटेनर अनुरोधों और अन्य घटनाओं के जवाब में इस वर्ग के एक या अधिक उदाहरणों का प्रबंधन करता है। आम तौर पर, एक JSP कंटेनर एक सर्वलेट कंटेनर का उपयोग करके बनाया जाता है। एक JSP कंटेनर सर्वलेट कंटेनर का एक विस्तार है क्योंकि दोनों कंटेनर JSP और सर्वलेट का समर्थन करते हैं।
  • एक JSPPage इंटरफ़ेस जो कंटेनर द्वारा प्रदान किया जाता है init() और destroy() तरीकों.
  • इसमें एक इंटरफ़ेस HttpJSPPage है जो HTTP अनुरोधों को पूरा करता है, और इसमें सेवा विधि भी शामिल है।

5) आरंभीकरण

public void jspInit()
{
	//initializing the code
}
  • _jspinit() विधि सर्वलेट इंस्टैंस को आरंभ करेगी जो JSP से उत्पन्न किया गया था और इस चरण में कंटेनर द्वारा लागू किया जाएगा।
  • एक बार इंस्टैंस बन जाने के बाद, उसके तुरंत बाद init विधि लागू हो जाएगी
  • इसे JSP जीवन चक्र के दौरान केवल एक बार बुलाया जाता है, आरंभीकरण के लिए विधि ऊपर दिखाए अनुसार घोषित की जाती है

6) अनुरोध प्रसंस्करण

void _jspservice(HttpServletRequest request HttpServletResponse response)
{
	//handling all request and responses
}
  • _jspservice() विधि को कंटेनर द्वारा JSP पृष्ठ द्वारा उसके जीवन चक्र के दौरान उठाए गए सभी अनुरोधों के लिए लागू किया जाता है
  • इस चरण के लिए, उसे उपरोक्त सभी चरणों से गुजरना होगा और उसके बाद ही सेवा विधि को लागू किया जा सकता है।
  • यह अनुरोध और प्रतिक्रिया ऑब्जेक्ट्स को पास करता है
  • इस विधि को ओवरराइड नहीं किया जा सकता
  • विधि ऊपर दर्शाई गई है: यह सभी HTTP विधियों अर्थात GET, POST, आदि को उत्पन्न करने के लिए जिम्मेदार है।

7) नष्ट करें

public void _jspdestroy()
{
            //all clean up code
}
  • _jspdestroy() विधि को कंटेनर द्वारा भी लागू किया जाता है
  • यह विधि तब बुलाई जाती है जब कंटेनर यह निर्णय लेता है कि उसे सेवा अनुरोधों के लिए अब सर्वलेट इंस्टैंस की आवश्यकता नहीं है।
  • जब destroy विधि को कॉल किया जाता है, तो सर्वलेट कचरा संग्रहण के लिए तैयार होता है
  • यह जीवन चक्र का अंत है।
  • हम ओवरराइड कर सकते हैं jspdestroy() जब हम कोई क्लीनअप करते हैं, जैसे कि डेटाबेस कनेक्शन जारी करना या खुली हुई फाइलें बंद करना, तो इस विधि का उपयोग किया जाता है।