2011-10-05 11 views
16

के किसी शरीर में स्ट्रिंग सेट करना मुझे सहायता चाहिए। मेरे वर्तमान विकास में आवश्यकताओं में से एक कहते हैं:httpResponse

सर्वर 200-ओके प्रतिक्रिया (httpresponse) के रूप में वापस आ जाएगा।

यदि पैनलिस्ट सत्यापित किया जाता है तो परिणामस्वरूप, सर्वर को भी इस पैनलिस्ट की पैनलिस्ट आईडी वापस करनी होगी।

सर्वर निम्नलिखित तरीके से 200-ठीक प्रतिक्रिया के शरीर के अंदर पैनलिस्ट आईडी स्थापित करेंगे:

<tdcp> 

<cmd> 

    <ack cmd=”Init”> 

     <panelistid>3849303</panelistid> 

    </ack> 

</cmd> 

अब मैं

रूप HttpResponse डाल करने में सक्षम हूँ
httpServletResponse.setStatus(HttpServletResponse.SC_OK); 

और मैं

डाल सकता हूं

String responseToClient= "<tdcp><cmd><ack cmd=”Init”><panelistid>3849303</panelistid></ack></cmd></tdcp>";

अब 200-ओके प्रतिक्रिया के शरीर के अंदर उपरोक्त एक्सएमएल डालने का मतलब क्या है और यह कैसे प्राप्त किया जा सकता है?

उत्तर

4

आपको बस सर्वलेट प्रतिक्रिया के आउटपुट स्ट्रीम (या आउटपुट लेखक) को प्राप्त करने की आवश्यकता है, और उस पर लिखें। अधिक जानकारी के लिए ServletResponse.getOutputStream() और ServletResponse.getWriter() देखें।

(या बस किसी भी सर्वलेट ट्यूटोरियल पढ़ें - प्रतिक्रिया शरीर में डेटा को शामिल करने की क्षमता के बिना, servlets बहुत बेकार :) होगा

30

आप इस प्रकार की प्रतिक्रिया के लिए सीधे एक्सएमएल लिख सकते हैं:

यह उदाहरण ServletResponse.getWriter() का उपयोग करता है, जो प्रतिक्रिया के लिए एक स्ट्रिंग लिखने के लिए PrintWriter है।

String responseToClient= "<tdcp><cmd><ack cmd=”Init”><panelistid>3849303</panelistid></ack></cmd></tdcp>"; 

httpServletResponse.setStatus(HttpServletResponse.SC_OK); 
httpServletResponse.getWriter().write(responseToClient); 
httpServletResponse.getWriter().flush(); 
httpServletResponse.getWriter().close(); 
+21

httpServletResponse.getWriter()। करीबी() एक अच्छा विचार नहीं है। आम तौर पर आपके द्वारा खोला नहीं गया एक स्ट्रीम बंद करना एक अच्छा विचार नहीं है। – Tarlog

0

कि XML होना है, पद पहले से ही आप के लिए चीजों को बजाय " को विशेषता बोली प्रतीक बदलकर खराब कर दिया है।

यदि आप जावा का उपयोग कर एक्सएमएल जेनरेट करना चाहते हैं तो JAXP पर एक नज़र डालने लायक है। < आदि के साथ लेखन स्ट्रिंग्स स्केल नहीं होंगे और आप गैर-ASCII वर्णों के एन्कोडिंग के साथ समस्याओं में भाग लेंगे।

संबंधित मुद्दे