2012-04-05 14 views
0

私はこのようなアドレスのJSPページがあります。JSPで書き換えられたURLを取得するにはどうすればよいですか?

http://111.111.111.111/rawr/something.jsp

:私は出力request.getRequestURL()、私は全く違う何かを得るとき

http://example.com/foo/bar/rawr/something.jsp

をドメインがIPに変更され、/foo/barがありません。 JSPを使用してブラウザが要求した実際のURLを取得するにはどうすればよいですか?

+1

あなたがプロキシを使用していますあなたのJava EEサーバーの前面?そうであれば、その特定のプロキシは特定の要求ヘッダーを設定する必要があります。 – BalusC

+0

私のサーバーではないので、私は完全にはわかりません。ヘッダーを調べてそこに有用なものがあるかどうか確認します。 – Jeff

+0

@BalusCあなたが正しいことが分かります。プロキシがあり、書き換えられたURLのヘッダーが与えられます。ヒントをありがとう! – Jeff

答えて

1

これは、Java EEサーバーの前にプロキシ(Apache HTTPDなど)がある場合に発生します。特定のプロキシーは、元の要求URLを要求ヘッダーとして設定する必要があります。少なくとも、すべての自尊心のあるプロキシがそれを行います。

次のようにあなたはそれを見つけるために、すべてのリクエストヘッダをクロールすることができます。

for (String name : Collections.list(request.getHeaderNames())) { 
    System.out.println(name + "=" + Collections.list(request.getHeaders(name))); 
} 
0

あなたがドメインを除く書き換えられたURLを取得するには、以下を使用することができます。

String rewrittenURL = request.getHeader("REDIRECT_URL"); 
関連する問題