在servlet初始化期间获取服务器名称

Ale*_*ipe 7 servlets http

我知道请求对象有一个获取服务器名称的函数.(即HttpServletRequest.getServerName())

如果我在servlet的初始化中需要相同的功能怎么办?我该怎么做呢?

Bal*_*usC 4

该信息是基于请求的,而不是严格基于应用程序的。它可以根据请求进行更改。在 Servlet 初始化过程中您所拥有的只是实例ServletContext,该实例又提供了诸如getInitParameter(). 您可以利用它来访问应用程序范围的设置。

因此,最好的选择是手动将服务器名称设置为上下文参数web.xml

<context-param>
    <param-name>serverName</param-name>
    <param-value>foo</param-value>
<context-param>
Run Code Online (Sandbox Code Playgroud)

这样就可以在servlet的方法中获取如下init()

String serverName = getServletContext().getInitParameter("serverName");
Run Code Online (Sandbox Code Playgroud)

另一种(不推荐)替代方法是将其设置为显示名称web.xml

<display-name>foo</display-name>
Run Code Online (Sandbox Code Playgroud)

这样您就可以通过以下方式获取它:

String serverName = getServletContext().getServletContextName();
Run Code Online (Sandbox Code Playgroud)