【发布时间】:2013-06-21 04:03:35
【问题描述】:
如何通过sendRedirect URL 传递头部参数?
我正在尝试对不同的应用程序执行sendRedirect。但我想将标头参数与请求一起传递。如何做到这一点?
【问题讨论】:
-
你在努力什么?
标签: java url http-headers
如何通过sendRedirect URL 传递头部参数?
我正在尝试对不同的应用程序执行sendRedirect。但我想将标头参数与请求一起传递。如何做到这一点?
【问题讨论】:
标签: java url http-headers
HttpServletResponse.sendRedirect() 向客户端发送重定向响应(302)。然后,客户端向Location 标头中指定的资源发起新请求。 HTTP 没有定义服务器要求客户端将任何请求标头设置为重定向资源的方法。
要将数据传递给新资源,您可以在查询字符串中设置它:
具体化
response.sendRedirect("NewResource?param1=value1");
新资源
request.getParameter("param1");
【讨论】:
如果我的理解正确,那是不可能的。听起来你想要这样的东西:
Client -> ServerA:
GET /foo
ServerA -> Client:
301 Moved Permanently
<Something magic to force the client to send header "Header1: xxx" to ServerB>
Client -> ServerB:
GET /bar
Header1: xxx
那种“神奇的东西”并不存在。客户端将始终发送它想要发送的任何标头值。甚至没有一个标准的方式来重定向到建议客户端做这样的事情。
【讨论】:
以下几行将http headers 设置为response:
response.setHeader(header1, value1);
response.setHeader(header2, value2);
-----
-----
response.sendredirect("someJsp.jsp")
【讨论】: