【发布时间】:2012-03-15 20:17:25
【问题描述】:
类如何获取正在使用它的 WAR 文件的名称?
这是出于诊断目的。
【问题讨论】:
标签: java jakarta-ee servlets
类如何获取正在使用它的 WAR 文件的名称?
这是出于诊断目的。
【问题讨论】:
标签: java jakarta-ee servlets
ServletContext.getContextPath()
这将返回应用程序的上下文路径(或根上下文的“”)。在一个 servlet 容器中,没有两个应用程序会为此具有相同的值。
编辑:
对于那些不知道上下文路径是什么的人:它是应用程序的 URI 前缀。在大多数情况下,它默认为 war 文件的名称,除非您明确配置它。所以如果你有 foo.war,那么你将在http://localhost:8080/foo/ 访问它,上面的函数将返回“/foo”。
【讨论】:
在小服务程序中
String warName = new File(getServletContext().getRealPath("/")).getName();
你可以用这个。
【讨论】:
fu.war 的战争中,计算结果为 fu.war-a714101a57c33ed9。在某些 servlet 容器中,这可能会很好地工作,但规范显然不需要这样做。
NullPointerException。