使用sendRedirect URL传递标头参数

时间:2013-06-21 04:03:36

标签: java url http-headers

如何使用sendRedirect网址传递标头参数?

我正在尝试sendRedirect到不同的应用程序。但我想传递标题参数和请求。怎么做?

3 个答案:

答案 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")