1. ホーム

[解決済み】HttpServletRequestでURLを補完する。

2022-04-01 18:40:40

質問

私は HttpServletRequest オブジェクトを作成します。

この呼び出しがサーブレットに到達する原因となった完全で正確なURLを取得するにはどうすればよいですか?

少なくとも、可能な限り正確に、再生成できるものがあるかもしれないので(パラメータの順序、おそらく)。

どのように解決するのか?

その HttpServletRequest には以下のメソッドがあります。

  • getRequestURL() - 完全な URL のうち、クエリ文字列の区切り文字より前の部分を返します。 ?
  • getQueryString() - は、完全な URL のうち、クエリ文字列の区切り文字である ?

つまり、完全なURLを取得するには、こうすればいいのです。

public static String getFullURL(HttpServletRequest request) {
    StringBuilder requestURL = new StringBuilder(request.getRequestURL().toString());
    String queryString = request.getQueryString();

    if (queryString == null) {
        return requestURL.toString();
    } else {
        return requestURL.append('?').append(queryString).toString();
    }
}