के बीच संचार मेरे पास दो वेब अनुप्रयोग हैं App1 और App2 कहते हैं। मैं ऐप 1 में एक सर्वलेट से ऐप 2 में एक सर्वलेट को कॉल करना चाहता हूं। मैं इसके लिए URLConnection का उपयोग कर रहा हूँ। मैं ऐप 2 में सर्वलेट को पैरामीटर पास करने में भी सक्षम हूं और मैं स्ट्रिंग के रूप में सर्वलेट से प्रतिक्रिया प्राप्त करने में भी सक्षम हूं। लेकिन मैं ऐप 2 में सर्वलेट से जावा ऑब्जेक्ट भेजना चाहता हूं और उन्हें ऐप 1 के सर्वलेट में प्राप्त करना चाहता हूं। इसे कैसे प्राप्त करें?दूरस्थ servlets
उत्तर
निर्भर करता है।
उन webapplications शारीरिक रूप से एक ही servletcontainer में एक ही वेब सर्वर पर चलाता है, तो बस यह एक अनुरोध विशेषता के रूप में सेट और अन्य संदर्भ के लिए अनुरोध अग्रेषित:
request.setAttribute("name", object);
ServletContext app2 = getServletContext().getContext("app2");
app2.getRequestDispacher("servletUrl").forward(request, response);
अन्य संदर्भ हो जाएगा
Object object = request.getAttribute("name");
यह केवल स्थापित करने कि संदर्भों एक दूसरे के द्वारा उपलब्ध हैं एक सर्वर की आवश्यकता है: वस्तु प्राप्त करने के लिए इस प्रकार सक्षम। यह कैसे करें servletcontainer पर निर्भर करता है। उदाहरण के लिए Tomcat में, आपको केवल crossContext
वेबपैप के <Context>
तत्व की true
पर सेट करने की आवश्यकता है।
<Context crossContext="true">
फिर यह अन्य संदर्भों के लिए उपलब्ध होगा। अन्य सर्वरों के लिए, इसके दस्तावेज़ीकरण से परामर्श लें।
उन webapplications शारीरिक रूप से अलग वेब सर्वर पर चलाता है, तो अनेक विकल्प हैं: स्ट्रिंग को
Convert और पैरामीटर के रूप में भेज सकते हैं। पुनर्प्राप्ति पर, स्ट्रिंग से वापस कनवर्ट करें। JSON इसके लिए एक अच्छा प्रारूप है। Google Gson पूर्ण योग्य जावा ऑब्जेक्ट्स और जेएसओएन और इसके विपरीत के बीच कनवर्ट करने की संभावनाएं प्रदान करता है। यदि आप जीईटी का उपयोग कर रहे हैं और अनुरोध यूआरआई 2KB से अधिक लंबा हो जाता है, तो जीईटी के बजाय POST का उपयोग करने पर विचार करें, अन्यथा यूआरआई सर्वर द्वारा छोटा कर दिया जा सकता है। पेशेवर: बेहतर पुन: प्रयोज्य सेवा। विपक्ष: बाइनरी डेटा भेजने के लिए मुश्किल है।
यह भी देखें:Converting JSON to Java।
URLConnection
या Apache HttpComponents Client प्रति RFC2388 के रूप में उपयोग करते हुए एकmultipart/form-data
HTTP POST अनुरोध भेजें और Apache Commons FileUpload का उपयोग कर दूसरी तरफ इसे संसाधित। पेशेवर: बाइनरी डेटा भेजने के लिए मानक विनिर्देश, संभव है। विपक्ष: अधिक कोड।यह भी देखें:How to use URLConnection।
Serialize जावा वस्तु,
ObjectOutputStream
का उपयोग कर इसेURLConnection#getOutputStream()
के लिए कच्चे लिख सकते हैं और यहHttpServletRequest#getInputStream()
से कच्चे निकालते हैं औरObjectInputStream
का उपयोग कर इसे unserialize। पेशेवर: आसान। विपक्ष: पुन: प्रयोज्य, तंग युग्मित नहीं।यह भी देखें:Object Streams और Lesson: Serialization।
उपयोग Serialization
के बजाय भेजने एचटीएमएल आप वस्तुओं भेजेंगे धाराओं।
बस, अतिरिक्त सुरक्षा जोड़ने के लिए जागरूक रहें, आप कुछ बाहरी स्रोतों को अपनी कॉल में जहर वाली वस्तुओं को इंजेक्ट नहीं करना चाहते हैं।
- 1. servlets
- 2. सीडीआई इंजेक्शन Servlets
- 3. क्यों Servlets धागे सुरक्षित नहीं हैं?
- 4. दूरस्थ डीबगिंग
- 5. दूरस्थ डेस्कटॉप
- 6. दूरस्थ सॉकेट
- 7. दूरस्थ प्रोग्रामिंग
- 8. EGIT दूरस्थ
- 9. दूरस्थ डेस्कटॉप
- 10. Servlets से @ViewScoped प्रबंधित सेम तक कैसे पहुंचे?
- 11. समवर्ती उपयोगकर्ताओं को संभालने के लिए मल्टीथ्रेड GAE servlets
- 12. Servlets के साथ राज्यिक बीन्स का सही उपयोग
- 13. दूरस्थ रूप से दूरस्थ svn शाखा को चेकआउट कैसे करें?
- 14. कॉपी दूरस्थ कंप्यूटर से फ़ाइल दूरस्थ व्यवस्थापक क्रेडेंशियल्स का उपयोग
- 15. एक .NET दूरस्थ मंगलाचरण
- 16. दूरस्थ रूप से WebDev.WebServer.exe
- 17. सभी दूरस्थ शाखाओं
- 18. एक दूरस्थ शाखा
- 19. दूरस्थ SQL सर्वर
- 20. Skia डिकोडर दूरस्थ स्ट्रीम
- 21. ExtJS4 ग्रिड दूरस्थ डेटाबेस
- 22. एक दूरस्थ सर्वर पीएचपी
- 23. दूरस्थ Mercurial भंडार
- 24. दूरस्थ CUDA प्रोफाइलिंग?
- 25. दूरस्थ मर्क्युरियल भंडार
- 26. दूरस्थ Git भंडार धक्का
- 27. कमान दूरस्थ होस्ट
- 28. क्रोम दूरस्थ डीबगिंग आईपी
- 29. दूरस्थ ओएसजीआई सेवा
- 30. एक दूरस्थ शाखा