在 Java EE 中,如何动态检索应用程序的完整 URL?
例如,如果 URL 是"localhost:8080/myapplication/"
,我想要一个可以简单地将其返回给我的方法,无论是作为字符串还是其他东西。
我将 GlassFish 作为应用程序服务器运行。
在 Java EE 中,如何动态检索应用程序的完整 URL?
例如,如果 URL 是"localhost:8080/myapplication/"
,我想要一个可以简单地将其返回给我的方法,无论是作为字符串还是其他东西。
我将 GlassFish 作为应用程序服务器运行。
在您有权访问的任何 servlet 或过滤器中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();
}