如何查找运行Servlet的主机和端口

4

如何在不使用HttpServletRequest的情况下查找 Servlet 运行的主机端口

我需要在我的 Servlet 初始化时知道这个信息,即在 Servlet#init 方法中。


ServletRequest接口有许多方法可以做到这一点,不使用RequestContext是什么意思? - Rahul Borkar
我指的是不使用HttpServletRequest。 - subodh
1
我认为这个问题有点冗余:https://dev59.com/sVHTa4cB1Zd3GeqPTaUh - рüффп
1个回答

1

http://docstore.mik.ua/orelly/java-ent/servlet/ch04_01.htm#ch04-33108

一个servlet使用getInitParameter()方法来访问它的初始化参数:
public String ServletConfig.getInitParameter(String name)

您可以在web.xml文件中定义host init-param:

<web-app>
    <servlet>
        <servlet-name>MyServletName</servlet-name>
        <servlet-class>com.mycompany.MyServlet</servlet-class>

        <init-param>
            <param-name>host</param-name>
            <param-value>myhost.mycompany.com</param-value>
        </init-param>
    </servlet>
</web-app>

并且可以在Servlet.init()中这样获取:

public void init() throws ServletException {
    getServletContext().log("init");
    // Get the value of an initialization parameter
    String value = getServletConfig().getInitParameter("host");

从文档中我看到ServletConfig是一个Servlet配置对象,由Servlet容器用于在初始化期间向Servlet传递信息... 有人知道我如何获取对它的引用吗?它没有静态方法,并且init方法不将其作为参数传递。 - subodh
LMGTFY是不允许的。请提供链接,但也在您的答案中添加关于覆盖init()的详细信息。LMGTFY不被允许。请提供链接,但同时在您的答案中添加有关如何重写init()的详细信息。 - Gray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接