2011-04-13 94 views
7

环境的NetBeans 6.9.1,GlassFish的3.1获取服务器的地址和应用程序名称

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

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

编辑假设AppName的值将被固定,所以我只需要主机地址。是否有可能通过JMX检索它?任何其他方式?

由于提前, 丹尼尔

回答

29

HttpServletRequest对象会给你你所需要的:

  • HttpServletRequest#getLocalAddr():服务器的IP地址作为字符串
  • HttpServletRequest#getLocalName():s的名称erver接收到该请求
  • HttpServletRequest#getServerName():所述服务器接收的上
  • HttpServletRequest#getServerPort()该请求的端口:该请求被发送到
  • HtppServletRequest#getLocalPort()的服务器的名称的端口的请求被发送到
  • HttpServletRequest#getContextPath():标识应用程序的路径的一部分
+0

注意!那是客户信息!!!! – Ging3r 2012-11-14 14:06:01

+10

@ Ging3r不,它不是。也许你应该听取你自己的建议,关注并阅读适当的文档? – 2012-11-14 23:05:53

3

里面一个servlet,你可以得到它像这样

public static String getUrl(HttpServletRequest request) { 
    return request.getRequestURL().toString(); 
} 
+5

这给出了完整的请求url,而不仅仅是上下文路径。 – 2011-04-13 07:47:26

相关问题