在httpResponse的主体中设置字符串

时间:2011-10-05 08:59:45

标签: java servlets

我需要帮助。在我目前的开发中,其中一个要求是:

  

服务器将返回200-OK作为响应(httpresponse)。

     

如果验证了专门小组成员,那么服务器也必须   返回此小组成员的小组成员ID。

     

服务器会将panelist id放在200-OK的正文中   以下列方式回应:

<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响应体内意味着什么呢?它是如何实现的?

3 个答案:

答案 0 :(得分:52)

您可以将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();

答案 1 :(得分:6)

您只需要获取servlet响应的输出流(或输出编写器),然后写入。有关详细信息,请参阅ServletResponse.getOutputStream()ServletResponse.getWriter()

(或者只是阅读任何servlet教程 - 如果不能在响应主体中包含数据,servlet将毫无用处:)

答案 2 :(得分:0)

如果这是XML,那么Word已经通过将属性引号更改为而不是"来为您破坏了一些东西。

如果要使用Java生成XML,请查看JAXP。在其中编写带有<等字符串的字符串将无法扩展,并且您将遇到非ASCII字符编码问题。