2011-10-05 53 views
16

我需要幫助。在我目前的開發中,其中一個要求是:在httpResponse主體中設置字符串

服務器將返回200-OK作爲響應(httpresponse)。

如果小組成員通過驗證,那麼服務器還必須返回該小組成員的小組成員標識。

服務器將放置在下列方式200-OK 響應的體內調查對象ID:

<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>";

現在什麼把上面的xml放在200-OK響應的內部意味着什麼呢?它是如何實現的?

回答

4

您只需獲取servlet響應的輸出流(或輸出寫入器),然後寫入該流。有關更多詳細信息,請參閱ServletResponse.getOutputStream()ServletResponse.getWriter()

(或簡單地讀任何servlet教程 - 不包括在響應體數據的能力,servlet的將是相當無用:)

30

您可以直接編寫XML的迴應如下:

這示例使用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()。close()不是一個好主意。總的來說,關閉一個並未由您打開的流並不是一個好主意。 – Tarlog

0

如果這的意思是XML,字已經通過更改屬性引用符號而不是"寵壞你的東西。

如果您想使用Java生成XML,那麼值得看看JAXP。用<等字符串編寫字符串將不會擴展,並且會遇到編碼非ASCII字符的問題。