如何在Java中重定向请求时在HTTP标头中传递数据

ani*_*nij 17 java http-redirect http-headers servlet-filters

是否可以在HTTP Header中传递一些数据,同时将请求从一个服务器重定向到另一个服务器.

这是我的场景,我有一个通用过滤器,每个请求都通过它.现在,基于某些条件,我正在使用API​​将请求重定向到某个不同的服务器 objHttpServletResponse.sendRedirect(strURL).

但是,问题是,当我在响应头中设置一些数据时,如objHttpServletResponse.setHeader("Key", "Value");在重定向的服务器中不可用.

所以,我的问题是,

1.在重定向请求时,有没有办法在标头中传递一些数据?

2.如果没有,在重定向请求时发送一​​些数据的其他可能方法是什么?

请注意:其他几种方式,比如

使用URL参数: objHttpServletResponse.sendRedirect(strURL+"?param="+ strParamValue);

要么

使用会话: HttpSession session = httpRequest.getSession(); session.setAttribute("Key", "Value");

不是我所期待的.

flu*_*lup 10

您设置的标头将写入发送到客户端的响应,以及Location标头和状态代码.请参阅使用servlet重定向请求,并且"setHeader"方法不起作用

然后,客户端应该向您在Location标头中指定的URL发送相同的请求.与发送给您的请求相同.

您希望浏览器发送您指定的标头以及重定向的请求.您是否考虑过添加(域)Cookie标头?一些谷歌搜索让我相信,重定向响应中设置的cookie将被大多数浏览器选中.请参见http://blog.dubbelboer.com/2012/11/25/302-cookie.html