我知道请求对象具有获取服务器名称的功能。 (即HttpServletRequest.getServerName())

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

最佳答案

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

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

<context-param>
    <param-name>serverName</param-name>
    <param-value>foo</param-value>
<context-param>

这样您就可以在servlet的init()方法中按以下方式获取它:
String serverName = getServletContext().getInitParameter("serverName");

另一个(不推荐)替代方法是将其设置为web.xml中的显示名称
<display-name>foo</display-name>

这样您就可以按以下方式获得它:
String serverName = getServletContext().getServletContextName();

关于http - 在Servlet初始化期间获取服务器名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4101772/

10-09 00:53