私はこのようなアドレスのJSPページがあります。JSPで書き換えられたURLを取得するにはどうすればよいですか?
:私は出力request.getRequestURL()
、私は全く違う何かを得るとき
をドメインがIPに変更され、/foo/bar
がありません。 JSPを使用してブラウザが要求した実際のURLを取得するにはどうすればよいですか?
私はこのようなアドレスのJSPページがあります。JSPで書き換えられたURLを取得するにはどうすればよいですか?
:私は出力request.getRequestURL()
、私は全く違う何かを得るとき
をドメインがIPに変更され、/foo/bar
がありません。 JSPを使用してブラウザが要求した実際のURLを取得するにはどうすればよいですか?
これは、Java EEサーバーの前にプロキシ(Apache HTTPDなど)がある場合に発生します。特定のプロキシーは、元の要求URLを要求ヘッダーとして設定する必要があります。少なくとも、すべての自尊心のあるプロキシがそれを行います。
次のようにあなたはそれを見つけるために、すべてのリクエストヘッダをクロールすることができます。
for (String name : Collections.list(request.getHeaderNames())) {
System.out.println(name + "=" + Collections.list(request.getHeaders(name)));
}
あなたがドメインを除く書き換えられたURLを取得するには、以下を使用することができます。
String rewrittenURL = request.getHeader("REDIRECT_URL");
あなたがプロキシを使用していますあなたのJava EEサーバーの前面?そうであれば、その特定のプロキシは特定の要求ヘッダーを設定する必要があります。 – BalusC
私のサーバーではないので、私は完全にはわかりません。ヘッダーを調べてそこに有用なものがあるかどうか確認します。 – Jeff
@BalusCあなたが正しいことが分かります。プロキシがあり、書き換えられたURLのヘッダーが与えられます。ヒントをありがとう! – Jeff