Установка строки в теле httpResponse
Мне нужна одна помощь в моем текущем развитии. В одном из требований говорится:
Сервер вернет 200-OK в качестве ответа (httpresponse).
Если эксперт проверяется, то в результате сервер также должен верните идентификатор участника этого участника.
Сервер поместит идентификатор участника в тело 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 и как его можно достичь?
Пожалуйста, помогите мне,
Заранее спасибо
Ответы
Ответ 1
Вы можете написать 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();
Ответ 2
Вам просто нужно получить выходной поток (или вывод записи) ответа сервлета и записать на него. Подробнее см. ServletResponse.getOutputStream()
и ServletResponse.getWriter()
.
(Или просто прочитайте любой учебник сервлета - без возможности включать данные в тела ответа, сервлеты будут бесполезны:)
Ответ 3
Если это означает, что XML уже испортил вам вещи, изменив символ кавычки атрибута на "
вместо "
.
Стоит взглянуть на JAXP, если вы хотите сгенерировать XML с помощью Java. Запись строк с помощью <
и т.д. В них не будет масштабироваться, и вы столкнетесь с проблемами с кодировками символов, отличных от ASCII.