我正在尝试构建一个Java EE应用程序,它提取某个会话cookie,将其作为HTTP标头添加到请求中,然后将用户转发到请求中带有此标头变量的第三方URL。
我使用this example作为参考。
我已实施FakeHeadersRequest
和SimpleFilter
,但不确定如何使用此新标头变量将请求重定向到其他网址。我应该创建一个转发请求的Servlet吗?也许使用Apache http客户端?
有人可以帮我完成这个难题吗?
答案 0 :(得分:1)
一旦您在服务器端并且已经包装了您的请求,请使用RequestDispatcher.forward()和该包装请求。
您要转发的资源(任何Servlet,JSP)将“看到”新标题。
不要尝试在客户端重定向(HTTP 302),让客户端发送自定义标头AFAIK并不容易。
答案 1 :(得分:0)
无论您使用何种语言或框架,都无法重定向到设置了自定义标头的网页。换句话说,无法触发HTTP重定向并导致客户端(浏览器)添加自定义标头。
您正在设置响应的自定义标头,指示浏览器重定向,而不是重定向。
网站指示浏览器使用自定义标头发出HTTP请求的唯一方法是使用Javascript和XMLHttpRequest
对象。
你能想出的最接近的事情就是充当代理人。没有重定向。