Java EE:如何获取我的应用程序的URL?

时间:2012-10-08 20:57:13

标签: java java-ee

在Java EE中,如何动态检索应用程序的完整URL?

例如,如果网址为"localhost:8080/myapplication/",我想要一个方法,只需将其作为字符串或其他内容返回给我。

我正在运行GlassFish作为应用程序服务器。

2 个答案:

答案 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();
}