Java EEで、アプリケーションの完全なURLを動的に取得するにはどうすればよいですか?
たとえば、URLがの場合"localhost:8080/myapplication/"
、文字列またはその他のいずれかとして、これを単純に返すことができるメソッドが必要です。
GlassFishをアプリケーションサーバーとして実行しています。
Java EEで、アプリケーションの完全なURLを動的に取得するにはどうすればよいですか?
たとえば、URLがの場合"localhost:8080/myapplication/"
、文字列またはその他のいずれかとして、これを単純に返すことができるメソッドが必要です。
GlassFishをアプリケーションサーバーとして実行しています。
アクセスできるサーブレットまたはフィルタの内部HttpServletRequest
では、クライアントがアプリケーションにアクセスするために使用したURLを確認できます(例:try)HttpServletRequest.getRequestURL()
。
JSFでは、次のヘルパー関数を使用してこれを比較的簡単に実現できました(必要なのはHttpServletRequest
:への参照だけです。
public static String getRequestUrl() {
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
StringBuffer requestURL = request.getRequestURL();
if (request.getQueryString() != null) {
requestURL.append("?");
requestURL.append(request.getQueryString());
}
return requestURL.toString();
}