我正在开发一个通用的构件,可用于多个Web应用程序。 开发人员只需将我的监听器类添加到他们的web.xml中。 在我的监听器中,我需要获取我的代码正在运行的Web应用程序名称。
虽然getServletContextName()将提供名称,但此名称是在web.xml中编码的显示名称。 我认为显示名称是可选的,因此不可靠。 所以我想获得实际的Web应用程序名称。 有办法做到这一点吗?
感谢您的关注。
我正在开发一个通用的构件,可用于多个Web应用程序。 开发人员只需将我的监听器类添加到他们的web.xml中。 在我的监听器中,我需要获取我的代码正在运行的Web应用程序名称。
虽然getServletContextName()将提供名称,但此名称是在web.xml中编码的显示名称。 我认为显示名称是可选的,因此不可靠。 所以我想获得实际的Web应用程序名称。 有办法做到这一点吗?
感谢您的关注。
尝试使用以下代码
String ApplicationName = ((HttpServletRequest) request).getContextPath()
.replace("/", "");
我找到了一种方法来做这件事....
new java.io.File(context.getRealPath("/")).getName()
getRealPath()
会返回null
。这是一个服务器特定的配置设置,无法从您的Web应用程序内部进行控制。 - BalusC
request.getContextPath()
方法?它返回你用来调用web应用程序的名称,例如http://localhost:8080/test。因此,返回值将是“test”。 - Hardik Mishra