0

如何通过sendRedirectURL 传递标头参数?

我正在尝试对sendRedirect不同的应用程序做。但我想将标头参数与请求一起传递。这个怎么做?

4

3 回答 3

8

HttpServletResponse.sendRedirect()向客户端发送重定向响应(302)。客户端然后向标头中指定的资源发起新请求Location。HTTP 没有定义服务器要求客户端将任何请求标头设置为重定向资源的方法。

要将数据传递给新资源,您可以在查询字符串中设置它:

使其具体化

response.sendRedirect("NewResource?param1=value1");

新资源

request.getParameter("param1");
于 2013-06-21T04:26:18.147 回答
2

如果我理解正确,那是不可能的。听起来你想要这样的东西:

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

那种“神奇的东西”是不存在的。客户端将始终发送它想要发送的任何标头值。甚至没有标准的重定向方式来建议客户做类似的事情。

于 2013-06-21T04:35:00.157 回答
0

以下行将http 标头设置为response

    response.setHeader(header1, value1);
    response.setHeader(header2, value2);
     -----
     -----
     response.sendredirect("someJsp.jsp") 
于 2013-06-21T04:07:05.393 回答