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