如何使用sendRedirect
网址传递标头参数?
我正在尝试sendRedirect
到不同的应用程序。但我想传递标题参数和请求。怎么做?
答案 0 :(得分:7)
HttpServletResponse.sendRedirect()
向客户端发送重定向响应(302)。然后,客户端向Location
标头中指定的资源发起新请求。 HTTP没有为服务器定义一种方法,要求客户端将任何请求标头设置为重定向资源。
要将数据传递到新资源,您可以在查询字符串中设置它:
使其具体化
response.sendRedirect("NewResource?param1=value1");
<强> NewResource 强>
request.getParameter("param1");
答案 1 :(得分:1)
如果我正确地理解你,那是不可能的。听起来你想要这样的东西:
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
不存在“神奇的东西”。客户端将始终发送它想要发送的任何标头值。甚至没有一种标准方法可以重定向建议客户端做类似的事情。
答案 2 :(得分:0)
以下行将http headers设置为response
:
response.setHeader(header1, value1);
response.setHeader(header2, value2);
-----
-----
response.sendredirect("someJsp.jsp")