6.1 जावाबीन क्या हैं

पहले से ही 90 के दशक के अंत में, बड़े सर्वर अनुप्रयोगों के लिए जावा भाषा का सक्रिय रूप से उपयोग किया जाने लगा, जहां कक्षाओं की संख्या दसियों और सैकड़ों हजारों में मापी जाती है। तभी जावा वस्तुओं के स्वरूप को मानकीकृत करने का विचार आया।

संपूर्ण जावा भाषा को छुआ नहीं गया था, ताकि इसे लचीलेपन से वंचित न किया जा सके। खैर, पश्चगामी अनुकूलता और वह सब। फिर उन्होंने नई पीढ़ी के जावा ऑब्जेक्ट्स के लिए कई मापदंड विकसित किए और ऐसी वस्तुओं को जावा बीन्स कहा। जावा का नाम कॉफी के एक लोकप्रिय ब्रांड के नाम पर रखा गया है, इसलिए जावा बीन्स का शाब्दिक अर्थ "कॉफी बीन्स" है।

सबसे महत्वपूर्ण मानदंड थे:

  • कक्षा के आंतरिक क्षेत्रों तक पहुंच के माध्यम से जाता है getProperty()
  • क्लास फील्ड्स में डेटा लिखना इसके माध्यम से जाता है setProperty(value)
  • कक्षा में सार्वजनिक पैरामीटर रहित कन्स्ट्रक्टर होना चाहिए ।
  • वर्ग क्रमबद्ध होना चाहिए।
  • कक्षा में equals(), hashCode()और विधियों को ओवरराइड किया जाना चाहिए toString()

इस दृष्टिकोण ने अनुप्रयोगों को कम सुसंगत बना दिया। हमेशा साफ़ करें:

  • ऑब्जेक्ट कैसे बनाएं - एक सार्वजनिक डिफॉल्ट कंस्ट्रक्टर है;
  • संपत्ति मूल्य कैसे प्राप्त/सेट करें;
  • किसी वस्तु को कैसे स्थानांतरित/सहेजें (हम क्रमांकन का उपयोग करते हैं);
  • वस्तुओं की तुलना कैसे करें (बराबर () और हैशकोड () का उपयोग करके);
  • लॉग में ऑब्जेक्ट के बारे में जानकारी कैसे प्रदर्शित करें (toString का उपयोग करें)।

अब यह वास्तव में उद्योग मानक है, लेकिन यह एक बार एक नया चलन था। ऐसा लगता है कि हर कोई पहले से ही इस तरह लिखता है, हालाँकि यदि आप HttpClient और इसके बिल्डर्स को याद करते हैं, तो आप देख सकते हैं कि नया मानक किसी के लिए कठिन है।

ऐसी वस्तुओं का व्यापक रूप से उपयोग किया जाता है जहां उनका मुख्य सिमेंटिक लोड डेटा स्टोरेज होता है। उदाहरण के लिए, जीयूआई, डेटाबेस और जेएसपी पृष्ठों में।

6.2 जेएसपी और जावाबीन

जेएसपी के कारणों में से एक यह था कि इसे फ्रंट-एंड डेवलपर्स को आउटसोर्स किया जा सकता था। और क्या? आपके पास एक व्यक्ति है जो एचटीएमएल को समझता है, उसे जेएसपी लिखने दें। जावा प्रोग्रामर अपना हिस्सा लिखते हैं, फ्रंट-एंड डेवलपर्स अपना लिखते हैं - सब कुछ ठीक है।

और सब कुछ ठीक था जब तक कि फ्रंट-एंड डेवलपर्स को जेएसपी में एम्बेडेड लिखित जावा कोड को समझना नहीं पड़ा। या इससे भी बदतर, ऐसा कोड स्वयं लिखें।

जावा प्रोग्रामर भी इससे खुश नहीं थे। खैर, कृपया बताएं कि कौन से लेआउट डिज़ाइनर बैकएंड डेवलपर हैं? हां, वे स्क्रिप्ट के अलावा कुछ नहीं लिख सकते। हां, और संपूर्ण प्रोग्रामिंग प्रतिमान कहता है कि विभिन्न भाषाओं को एक फ़ाइल में मिलाना एक बुरा रूप है।

फिर यह विचार आया कि वे फ्रंट-एंड डेवलपर्स को HTML कोड के साथ जावा ऑब्जेक्ट्स के साथ काम करने का अवसर देने के लिए कहते हैं। प्रत्येक HTML टैग भी अपने स्वयं के क्षेत्रों के साथ एक वस्तु है, इसी तरह जावा वस्तुओं के साथ काम क्यों नहीं करते?

आपने कहा हमने किया। विशेष टैग जोड़े गए और हम चले गए।

वस्तु निर्माण:

<jsp:useBean id="Name" class="Object type" scope="session"/>

इस कमांड ने टाइप के साथ एक ऑब्जेक्ट बनाया objectऔर इसे sessionनाम के तहत रखा Name

वस्तुओं को चार स्टोरों में से एक में संग्रहीत किया जा सकता है: एप्लिकेशन (वैश्विक), सत्र, अनुरोध और पृष्ठ। ऐसी वस्तुओं की संपत्ति निर्धारित करना भी संभव था:

<jsp:setProperty name="Name" property="propName" value="string constant"/>

आप इस तरह की वस्तुओं की संपत्ति प्राप्त कर सकते हैं:

<jsp:getProperty name="Name" property="propName"/>

टैग का उपयोग करने का एक उदाहरण:

<body>
    <center>
        <h2>Using JavaBeans in JSP</h2>
        <jsp:useBean id = "test" class = "com.example.TestBean" />
        <jsp:setProperty name = "test" property = "message" value = "Hello JSP..." />
        <p> What-to do important</p>
        <jsp:getProperty name = "test" property = "message" />
    </center>
   </body>