मुझे किसी अन्य सर्वलेट से सर्वलेट पोस्ट विधि को कॉल करने और सर्वलेट पैरामीटर में ब्लॉब पास करने की आवश्यकता है। क्या यह सकारात्मक है, यदि ऐसा है तो यह कैसे किया जा सकता है। पीएस: मैं अपाचे एचटीपी क्लाइंटकिसी अन्य सर्वलेट से कॉलिंग सर्वलेट पोस्ट
उत्तर
आपको स्वयं HTTP अनुरोध बनाने और भेजने की आवश्यकता है। आप आगे/रीडायरेक्ट/शामिल का उपयोग नहीं कर सकते क्योंकि आप विधि को जीईटी से पोस्ट में बदलना चाहते हैं और आप multipart/form-data
अनुरोध भेजना चाहते हैं।
जैसा कि एचटीपी क्लाइंट (और अन्य तृतीय पक्ष लाइब्रेरी?) स्पष्ट रूप से एक विकल्प नहीं है, आपकी सर्वश्रेष्ठ शर्त मानक जावा एसई एपीआई java.net.URLConnection
प्रदान करने के लिए है। लंबी कहानी छोटी: Using java.net.URLConnection to fire and handle HTTP requests नीचे आपको multipart/form-data
उदाहरण मिल सकता है।
कृपया ध्यान दें कि यह समस्या सर्वलेट के लिए विशिष्ट नहीं है। दूसरे शब्दों में, आप main()
विधि के साथ एक सादे वेनिला जावा एप्लिकेशन में इस कोड को निष्पादित करने में सक्षम होना चाहिए। यह आसान परीक्षण और finetuning के लिए अनुमति देता है। एक बार जब आप इसे काम करने के लिए प्राप्त करते हैं, तो बस सर्वलेट को कोड के उसी टुकड़े को निष्पादित करने दें।
असंबंधित समस्या के लिए, मैं धारणा एक प्रमुख डिजाइन विफलता यह है कि कहीं न कहीं, निश्चित रूप से अगर दोनों सर्वलेट्स ही WebApplication संदर्भ में चलाता है। दूसरा सर्वलेट जहां आप POST अनुरोध भेजना चाहते हैं, वह स्पष्ट रूप से बहुत तंग है और इसे दोबारा किया जाना चाहिए।
का उपयोग नहीं कर सकता क्या आपका मतलब है कि आप अपने आवेदन से किसी अन्य वेब सेवा पर कॉल करें? यदि ऐसा है, तो HttpClient जैसे कुछ आप चाहते हैं। यदि आपका मतलब है कि आप अपने ऐप में प्रोग्रामेटिक रूप से एक और सर्वलेट का आह्वान करना चाहते हैं, तो आप या तो forward to it या include it देख रहे हैं।
किया जा सकता है, मैं अपने ऐप के अंदर एक और सर्वलेट कॉल करना चाहता हूं, लेकिन यह POST विधि होना चाहिए। मैं सामान्य रूप से क्या करता हूं प्रतिक्रिया है। अप्रत्यक्ष (...) लेकिन वह जीईटी विधि कहता है ... मैं POST को कैसे कॉल कर सकता हूं? – fernandohur
मैंने जो कहा: आगे या शामिल करें, जिस पर आप करने की कोशिश कर रहे हैं। जेईई ट्यूटोरियल में ["अन्य वेब संसाधनों को आमंत्रित करना" देखें (http://download.oracle.com/javaee/6/tutorial/doc/bnagi.html) अधिक जानकारी के लिए। –
आप अपने आवेदन में किसी अन्य सर्लेट में प्रेषक प्राप्त कर सकते हैं और उसे अग्रेषित कर सकते हैं या इसे @Ryan सुझावों के रूप में शामिल कर सकते हैं। कोड आपके पहले सर्वलेट के अंदर ऐसा कुछ होना चाहिए:
ServletContext context = this.getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher("/otherurltoservlet");
// change your request and response accordingly
dispatcher.forward(request, response);
मुझे अपने ऐप में किसी अन्य सर्वलेट पर POST विधि को कॉल करने की आवश्यकता है। क्या वह "otherurltoservlet" की पोस्ट विधि को कॉल करेगा? – fernandohur
मेरा मानना है कि यदि पहली सर्वलेट को डाक के माध्यम से बुलाया गया था तो दूसरा प्रेषक में पोस्ट के माध्यम से कॉल किया जाएगा। फॉरवर्ड चेन। – rmarimon
पोस्ट करने के बारे में प्रश्न के लिए यहां एक नज़र डालें http://stackoverflow.com/questions/4374548/does-jspforward-or-requestdispatcher-forward-use-get-or-post – rmarimon
- 1. पोस्ट डेटा के साथ जीडब्ल्यूटी से कॉल सर्वलेट और सर्वलेट
- 2. कॉलिंग सर्वलेट की विध्वंस विधि
- 3. सर्वलेट: सेव: सर्वलेट
- 4. सर्वलेट 3.0 एसिंक्रोनस सर्वलेट
- 5. सर्वलेट
- 6. सर्वलेट
- 7. सर्वलेट
- 8. सर्वलेट
- 9. सर्वलेट
- 10. सर्वलेट
- 11. सर्वलेट
- 12. सर्वलेट
- 13. सर्वलेट
- 14. एचटीएमएल पेज से सर्वलेट
- 15. सर्वलेट से जेएसपी पेज
- 16. एकाधिक पोस्ट अनुरोधों को संभालने वाला सर्वलेट
- 17. जावा सर्वलेट
- 18. सर्वलेट से जेएसपी
- 19. सर्वलेट से जेएसपी
- 20. गतिशील रूप से सर्वलेट
- 21. टॉमकैट: सर्वलेट
- 22. एक जावा सर्वलेट से दूसरे डेटा में पोस्ट डेटा लिखना
- 23. जीडब्ल्यूटी सर्वलेट
- 24. सर्वलेट 3.0
- 25. सर्वलेट फ़िल्टर
- 26. जावा सर्वलेट
- 27. सर्वलेट 3.0
- 28. सर्वलेट मैपिंग
- 29. जावा सर्वलेट
- 30. सर्वलेट 3.0
वेल अपाचे एचटीपी क्लाइंट खुला स्रोत है ... कॉपी और पेस्ट करें? –
मैं इसका उपयोग नहीं कर सकता क्योंकि मैं Google ऐप इंजन का उपयोग करता हूं और यह कुछ कक्षाओं पर सीमाएं लगाता है जिनका उपयोग – fernandohur