在Java EE,我怎么能动态地检索我的应用程序的完整网址?
例如,如果URL是"localhost:8080/myapplication/"
,我想这可以简单地返回这个对我来说,无论是作为一个字符串或别的东西的方法。
我正在运行的GlassFish作为应用服务器。
在Java EE,我怎么能动态地检索我的应用程序的完整网址?
例如,如果URL是"localhost:8080/myapplication/"
,我想这可以简单地返回这个对我来说,无论是作为一个字符串或别的东西的方法。
我正在运行的GlassFish作为应用服务器。
内部的任何servlet或过滤您可以访问HttpServletRequest
,它允许您查看使用了哪些URL由客户端来访问你的应用程序,例如尝试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();
}