在Java EE中,如何动态检索应用程序的完整URL?
例如,如果网址为"localhost:8080/myapplication/"
,我想要一个方法,只需将其作为字符串或其他内容返回给我。
我正在运行GlassFish作为应用程序服务器。
答案 0 :(得分:5)
在您可以访问HttpServletRequest
的任何servlet或过滤器中,您可以查看客户端用于访问您的应用程序的URL,例如试试HttpServletRequest.getRequestURL()
。
答案 1 :(得分:0)
在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();
}