1. ホーム
  2. url

[解決済み] Spring MVCで現在のURLを取得する最も良い方法は何ですか?

2022-10-13 07:39:20

質問

クライアントがアクティブなリクエストに使用した URL に基づいて URL を作成したいと思います。現在の HttpServletRequest オブジェクトと getParameter...() メソッドを使用して、GET パラメータを含む (そしてそれだけを) 完全な URL を再構築します。

明確にしてください。可能であれば、私は HttpServletRequest オブジェクトの使用を辞めたいのですが。

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

このデータに簡単にアクセスする方法は2つありますが、インターフェイスは1回の呼び出しでURL全体を取得する可能性を提供しません。手動でそれを構築する必要があります。

public static String makeUrl(HttpServletRequest request)
{
    return request.getRequestURL().toString() + "?" + request.getQueryString();
}

Spring MVCの設備でこれを行う方法は知らない。

もし、どこでも渡すことなく現在のRequestにアクセスしたい場合は、web.xmlにリスナーを追加する必要があります。

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

そして、現在のスレッドにバインドされているリクエストを取得するためにこれを使用します。

((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest()