Я хочу из сервлета добавить некоторый простой текстовый контент и два заголовка в HttpServletResponse - PullRequest
3 голосов
/ 28 июня 2011

Я хочу добавить простой текст и два заголовка к HttpServletResponse, код следующий:

resp.setContentType("text/plain");

resp.getWriter().write(messages.get(next).getContent());

resp.addHeader("success", "yes");

resp.addHeader("hasnext", ((Boolean)hasNext).toString());

Проблема, с которой я сталкиваюсь, заключается в том, что отправка содержимого предотвращает отправку заголовков. Если я не пишу контент, заголовки получаются нормально, если я включаю текст, который они не делают.

В чем проблема?

1 Ответ

10 голосов
/ 28 июня 2011

Попробуйте сначала установить заголовки. Также я предполагаю, что вы позвоните writer.flush() после того, как закончите с вашим ответом.

UPDATE

Можете ли вы проверить, работает ли следующее:

protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setHeader("Content-Type", "text/plain");
    response.setHeader("success", "yes");
    PrintWriter writer = response.getWriter();
    writer.write("hello\n");
    writer.close();
}

Используйте curl -i http://yourapp.appspot.com для проверки заголовков.

...