Servlet 如何发送带有正文数据的响应重定向?

问题描述 投票:0回答:1

尝试使用正文消息重定向?

response.sendRedirect(url);
Writer writer = response.getWriter();
writer.write("some message");
write.close();

Writer writer = response.getWriter();
writer.write("some message");
response.sendRedirect(url);
write.close();

在这两种情况下,http 客户端收到的响应正文都是空的。

没有错误消息。

不禁止 302 的响应正文。

HTTP 302 重定向 - 是否需要消息正文?

http-redirect servlets
1个回答
0
投票

确实,根据 its javadoc

HttpServletResponse#sendRedirect()
“清除缓冲区”(读取:响应正文)。

您需要手动设置

Location
标头和状态代码。

response.setHeader("Location", url);
response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
response.getWriter().write("some message");

需要注意的是,不需要显式关闭响应主体。容器会处理它。

© www.soinside.com 2019 - 2024. All rights reserved.