ServletContextListener获取端口

有一个需求需要在ServletContextListener中获取服务器的端口 这个时候还拿不到request,所以这个方法不行,大家还有没有别的方法可以拿到端口呢,感谢大家

参考How to query the servlet container to obtain effective URL from a ServletContextListener?

public void contextInitialized(ServletContextEvent sce) {
    WebAppContext ctx = (WebAppContext) sce.getServletContext();
    System.out.println("context Base Path" + ctx.getContextPath());
    System.out.println("Getting the port is a bit trickier");
    System.out.println("One valid Port = " + ctx.getServer().getConnectors()[0].getPort());
}

有知道的吗,非常感谢。。。。。。java

这个恐怕是动态取不到了,你要自己写个配置文件了,将端口自己写上了吧,菜鸟回答

问题主要是这样的,因为一台服务器上部署了两个应用,需要在启动的时候获取ip和端口来标识应用。不知道大家还有没有别的东西可以获取来区分这两个应用

不可以通过路径去标识应用吗?
你的服务器是linux还是windows的。可以使用命令获取当前所有服务的进程号,然后查询进程占用端口情况。

InetAddress.getLocalHost().getHostAddress() 这个可以获取本机ip。端口号 一般是应用写死的吧 固定的吧