Spring MVC で現在の URL を取得する最適な方法は何ですか? 質問する

Spring MVC で現在の URL を取得する最適な方法は何ですか? 質問する

アクティブなリクエストに対してクライアントが使用する URL に基づいて URL を作成したいと思います。現在のHttpServletRequestオブジェクトとそのメソッドを取得して、 getParameter...()GET パラメータのみを含む完全な URL を再構築するよりもスマートな方法はありますか。

説明: 可能であれば、HttpServletRequestオブジェクトの使用をやめたいと思います。

ベストアンサー1

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

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

Spring MVC 機能を使用してこれを実行する方法についてはわかりません。

現在のリクエストをどこにも渡さずにアクセスする場合は、web.xml にリスナーを追加する必要があります。

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

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

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

おすすめ記事