0

次のようなアドレスにJSPページがあります。

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

出力するとrequest.getRequestURL()、まったく異なるものが得られます。

http://111.111.111.111/rawr/something.jsp

ドメインがIPに変更され、/foo/bar欠落していることに注意してください。ブラウザがJSPを使用して要求した実際のURLを取得するにはどうすればよいですか?

4

2 に答える 2

1

これは、Java EE サーバーの前にプロキシ (Apache HTTPD など) がある場合に発生する可能性があります。特定のプロキシは、元のリクエスト URL をリクエスト ヘッダーとして設定できたはずです。少なくとも、すべての自尊心のある代理人はそうしています。

次のように、すべてのリクエスト ヘッダーをクロールして確認できます。

for (String name : Collections.list(request.getHeaderNames())) {
    System.out.println(name + "=" + Collections.list(request.getHeaders(name)));
}
于 2012-04-05T16:10:12.717 に答える
0

以下を使用して、ドメインを除く書き換えられた URL を取得できます。

String rewrittenURL = request.getHeader("REDIRECT_URL");
于 2013-01-11T09:35:46.310 に答える