获取服务器地址和应用程序名称

时间:2011-04-13 07:41:00

标签: java servlets jmx

环境:NetBeans 6.9.1,GlassFish 3.1

我有一个Java Web应用程序。如何动态获取服务器地址和应用程序名称? '2in1'解决方案对我来说是最好的:http://localhost:8080/AppName/

是否有实用的方法来获取这些信息?

假设AppName的值将被修复,所以我只需要主机地址。是否可以通过JMX检索它?还有其他方法吗?

2 个答案:

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