【问题标题】:How do I get root network path in JSP?如何在 JSP 中获取根网络路径?
【发布时间】:2012-01-05 16:13:58
【问题描述】:

简单地说,我如何在 JSP 中检索根网络路径?

如果页面位于http://mysite.com/Level1/index.html 并且上下文路径是/Level1(其中正斜杠是根),那么根网络路径应该是mysite.com。如何在 JSP 中检索它?

谢谢。

【问题讨论】:

    标签: jsp


    【解决方案1】:

    getServerName()

    所以在 JSP 中:${pageContext.request.serverName}

    【讨论】:

    • 非常感谢您的帮助。
    【解决方案2】:

    Servlet(以及 JSP)可以访问 ServletRequest 和 ServletContext 对象,它们具有获取 servlet 资源和位置所需的元数据。

    ServletRequest

    看来您只需要服务器名称 - 然后,正如其他帖子所示,ServletRequest 可以为您提供 - http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html

    ServletContext(在您的情况下不直接有用)

    请记住,JSP 只是 servlet - 您的 JSP 可以访问 Servlet 上下文和 Servlet Request 对象。

    ServletContext 为您提供了一个 API,用于访问有关其运行位置(在磁盘上)以及其资源如何定位的信息,这称为 servlet 上下文。

    servlet 上下文有一个方法“getResourcePaths”(用于在您的 servlet 目录中查找文件)和 “getRealPath()”(它为您提供“完整" servlet 的路径,包括主机名)。

    Accessing Tomcat Context Path from Servlet

    【讨论】:

    • 不,这是不对的。 getRealPath()返回本地磁盘路径,与请求URL无关。
    【解决方案3】:

    您似乎需要ServletRequest 对象的serverName 属性(请参阅javadoc)。

    在 JSP EL 中,${pageContext.request.serverName} 应该可以工作。在 scriptlet 中,使用 request.getServerName()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多