在Servlet中获取Web应用程序名称

时间:2012-09-06 21:31:51

标签: web-applications servlets

我正在开发一个可以在多个Web应用程序中使用的常见工件。开发人员只需将我的侦听器类添加到他们的web.xml中。在我的监听器中,我需要获取运行我的代码的Web应用程序名称。

尽管getServletContextName()将给出一个名称,但此名称是web.xml中编码的显示名称。我认为display-name是可选的,所以它不可靠。所以我想获得实际的Web应用程序名称。有没有办法做到这一点?

感谢您的光临。

2 个答案:

答案 0 :(得分:1)

尝试使用此代码

String ApplicationName = ((HttpServletRequest) request).getContextPath()
                    .replace("/", "");

答案 1 :(得分:-1)

我找到了办法......

new java.io.File(context.getRealPath("/")).getName()

上面给出了网络应用程序名称,即WAR名称。

Hardik,感谢您对此进行调查。

MaVRoSCy,显示名称可以是任何内容。它不必是Web应用程序名称。例如,所有Maven Web项目都将默认显示名称为“原型创建的Web应用程序”,我不想选择它。