अंतर-सर्वलेट संचार क्या है?

0
13912

जैसा कि नाम से पता चलता है, यह सर्वलेट्स के बीच संचार है। सर्वलेट्स एक दूसरे से बात कर रहे हैं। [सर्वलेट्स के बीच संचार करने के कई तरीके हैं, जिनमें शामिल हैं

  • प्रेषण का अनुरोध करें
  • HTTP रीडायरेक्ट
  • सर्वलेट चेनिंग
  • HTTP अनुरोध (सॉकेट या URLConnection क्लास का उपयोग करके)
  • साझा सत्र, अनुरोध, या एप्लिकेशन ऑब्जेक्ट (बीन्स)
  • प्रत्यक्ष विधि मंगलाचरण (बहिष्कृत)
  • साझा स्थैतिक या उदाहरण चर (बहिष्कृत)

इनमें से प्रत्येक तकनीक पर जानकारी के लिए अक्सर पूछे जाने वाले प्रश्न, विशेष रूप से संदेश पासिंग (अनुरोध प्रेषण सहित) विषय पर खोजें। -एलेक्स]

मूल रूप से, इंटरसर्वलेट संचार सर्वलेट चेनिंग के माध्यम से प्राप्त किया जाता है। यह एक ऐसी प्रक्रिया है जिसमें आप एक सर्वलेट के आउटपुट को दूसरे सर्वलेट के इनपुट के रूप में पास करते हैं। ये सर्वलेट एक ही सर्वर में चलने चाहिए।

उदाहरण के लिए ServletContext.getRequestDispatcher(HttpRequest, HttpResponse).forward(“NextServlet”); आप वर्तमान अनुरोध और प्रतिक्रिया ऑब्जेक्ट को नवीनतम फॉर्म सबमिशन से अगले सर्वलेट/जेएसपी में पास कर सकते हैं। आप इन ऑब्जेक्ट्स को संशोधित कर सकते हैं और उन्हें पास कर सकते हैं ताकि अगला सर्वलेट/जेएसपी इस सर्वलेट के परिणामों का उपयोग कर सके।

सर्वलेट चेनिंग के लिए कुछ सर्वलेट इंजन-विशिष्ट कॉन्फ़िगरेशन हैं।

सर्वलेट्स उसी सर्वर में चल रहे अन्य सर्वलेट्स के सार्वजनिक कार्यों को भी कॉल कर सकते हैं। यह सर्वलेट कॉन्टेक्स्ट ऑब्जेक्ट के माध्यम से वांछित सर्वलेट के लिए एक हैंडल प्राप्त करके इसे सर्वलेट नाम पास करके किया जा सकता है (यह ऑब्जेक्ट सर्वर में चल रहे किसी भी सर्वलेट को वापस कर सकता है)। और फिर लौटाए गए सर्वलेट ऑब्जेक्ट पर फ़ंक्शन को कॉल करना।

उदाहरण के लिए TestServlet test= (TestServlet)getServletConfig().getServletContext().getServlet('अन्यServlet'); अन्य सर्वलेट विवरण = Test.getServlet विवरण();

जब आप किसी अन्य सर्वलेट के तरीकों को कॉल करते हैं तो आपको सावधान रहना चाहिए। यदि आप जिस सर्वलेट को कॉल करना चाहते हैं वह SingleThreadModel इंटरफ़ेस लागू करता है, तो आपका कॉल सर्वलेट की सिंगल-थ्रेडेड प्रकृति के साथ टकराव पैदा कर सकता है। (सर्वर हस्तक्षेप नहीं कर सकता है और यह सुनिश्चित नहीं कर सकता है कि आपका कॉल तब होता है जब सर्वलेट किसी अन्य क्लाइंट के साथ इंटरैक्ट नहीं कर रहा है।) इस मामले में, आपके सर्वलेट को सीधे कॉल के बजाय अन्य सर्वलेट के लिए HTTP अनुरोध करना चाहिए।

सर्वलेट्स HTTP अनुरोध भेजकर प्रोग्रामेटिक रूप से अन्य सर्वलेट्स को भी आमंत्रित कर सकते हैं। यह वांछित सर्वलेट के लिए यूआरएल कनेक्शन खोलकर किया जा सकता है।