【问题标题】:How to find the host and port that a Servlet is running on [duplicate]如何找到正在运行 Servlet 的主机和端口 [重复]
【发布时间】:2012-03-15 19:38:56
【问题描述】:

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

我需要在初始化我的 servlet 时知道这一点,即在 Servlet#init 方法中。

【问题讨论】:

  • ServletRequest接口有很多方法可以做到这一点,不使用RequestContext是什么意思
  • 我的意思是不使用 HttpServletRequest
  • 我认为这个问题有点多余:stackoverflow.com/questions/4101772/…
  • 感谢您指出这一点。

标签: java servlets


【解决方案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 方法不会将其作为参数传递
  • LMGTFY 是不允许的。请提供链接,但还要在您的答案中添加覆盖 init() 的详细信息。
猜你喜欢
  • 2011-02-05
  • 2011-05-04
  • 2020-08-16
  • 1970-01-01
  • 2019-01-08
  • 1970-01-01
  • 2021-12-11
  • 2019-09-01
  • 1970-01-01
相关资源
最近更新 更多