环境:NetBeans 6.9.1,GlassFish 3.1
我有一个Java Web应用程序。如何动态获取服务器地址和应用程序名称? '2in1'解决方案对我来说是最好的:http://localhost:8080/AppName/
。
是否有实用的方法来获取这些信息?
假设AppName
的值将被修复,所以我只需要主机地址。是否可以通过JMX检索它?还有其他方法吗?
答案 0 :(得分:30)
HttpServletRequest
对象将为您提供所需内容:
HttpServletRequest#getLocalAddr()
:服务器的IP地址为字符串HttpServletRequest#getLocalName()
:接收请求的服务器的名称HttpServletRequest#getServerName()
:请求发送到HtppServletRequest#getLocalPort()
:服务器在HttpServletRequest#getServerPort()
:请求发送到HttpServletRequest#getContextPath()
:标识应用程序的路径部分答案 1 :(得分:3)
在servlet中你可以像这样得到它
public static String getUrl(HttpServletRequest request) {
return request.getRequestURL().toString();
}