当前位置:  开发笔记 > 前端 > 正文

如何获取域名URL和应用程序名称?

如何解决《如何获取域名URL和应用程序名称?》经验,为你挑选了4个好方法。

这是场景.

我的Java Web应用程序有以下路径

https://www.mywebsite.com:9443/MyWebApp

假设有一个JSP文件

https://www.mywebsite.com:9443/MyWebApp/protected/index.jsp

我需要检索

https://www.mywebsite.com:9443/MyWebApp 

在这个JSP文件中.

当然,有一种懒惰和愚蠢的方式只是获取URL然后重新跟踪路径.

但是有没有一种编程方式呢?具体来说,我想我可以获得域+端口,但是如何实际检索应用程序名称"MyWebApp"?



1> Jataro..:

看看文档HttpServletRequest.
要在您的示例中构建URL,您需要使用:

getScheme()

getServerName()

getServerPort()

getContextPath()

这是一个返回示例的方法:

public static String getURLWithContextPath(HttpServletRequest request) {
   return request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();
}



2> BalusC..:

Web应用程序名称(实际上是上下文路径)可通过调用获得HttpServletrequest#getContextPath()(因此不是getServletPath()之前建议的).您可以在JSP中检索它${pageContext.request.contextPath}.

The context path is: ${pageContext.request.contextPath}.

如果您打算将这个用于JSP页面中的所有相对路径(这会使这个问题更有意义),那么您可以使用HTML 标记:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

${req.requestURL}




    
        SO question 2204870
        
        
        
    
    
        
    

然后,页面中的所有链接将自动相对于您,这样您就不需要在任何地方复制上下文路径.请注意,当相对链接以a开头时/,它们将不再相关,而是相对于域根.


在XHTML DOCTYPE中,您需要在contextPath中附加一个'/'字符.

3> AgilePro..:

应用程序名称来自getContextPath.

我从Agile Software Craftsmanship中找到这个图形HttpServletRequest Path Decoding可以 找出所有可用的不同方法:

在此输入图像描述



4> Adeel Ansari..:

对于类似的方法,我强烈建议你阅读文档.如果您对上下文路径感兴趣,请查看ServletContext.getContextPath().

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有