Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java代码从地址栏获取主机名_Java - Fatal编程技术网

使用Java代码从地址栏获取主机名

使用Java代码从地址栏获取主机名,java,Java,我需要使用java代码从地址栏中检索主机名。例如,如果地址栏中有“www.stackoverflow.com/questions”,我必须得到“www.stackoverflow.com”。请帮助我。如果您对格式有一点了解,可以使用以下代码轻松完成: String http = "www.stackoverflow.com/questions"; String url = http.substring(0, http.indexOf("/")); System.out.

我需要使用java代码从地址栏中检索主机名。例如,如果地址栏中有“www.stackoverflow.com/questions”,我必须得到“www.stackoverflow.com”。请帮助我。

如果您对格式有一点了解,可以使用以下代码轻松完成:

    String http = "www.stackoverflow.com/questions";
    String url = http.substring(0, http.indexOf("/"));

    System.out.println(url);

    http = "http://www.stackoverflow.com/questions";
    String nohttp = http.substring(7, http.length());
    url = nohttp.substring(0, nohttp.indexOf("/"));

    System.out.println(url);

或者,您可以使用一些“更好”的方法:

public static void main(String[] args) {
    System.out.println(getHostname("www.stackoverflow.com/questions"));
    System.out.println(getHostname("http://www.stackoverflow.com/questions"));
}

public static boolean isHttp(String s){
    if (s.indexOf("http://") == 0){
        return true;
    } else {
        return false;
    }
}

public static String getHostname(String url){
    String nativeUrl = url;
    if (isHttp(nativeUrl)){
        url = url.substring(7);
    }

    url = url.substring(0, url.indexOf("/"));
    if (isHttp(nativeUrl)){
        url = "http://" + url;
    }

    return url;
}
输出

www.stackoverflow.com
http://www.stackoverflow.com

请学习如何查看URL类,特别是关于“搜索和研究”的部分。感谢pwilmot,您提供的链接解释了如果我们将url作为参数,如何拆分url,如主机名、端口等。我需要的是从地址栏中获取url本身,然后将其拆分以获取主机名。有什么建议吗?请描述一下你面临问题的情况!您想在任务中使用小程序吗?那么我认为由于安全限制,这可能是不可能的,但是为了给你一个有意义的答案,我们需要你提供更多的信息。否则问题必须标记为“无用”,请让我解释一下。我写了两条注释,因为注释的大小正在增加。---假设我调用了一个servlet,比如“crmdev.com/servlet123”;这是一个发展实例。一旦servlet123代码被执行,我将其重定向到另一个页面,该页面位于“crmdev.com/MyHomepage”;。在这种情况下,我可以直接在servlet中硬编码后一个url(crmdev.com/MyHomepage)以进行重定向,当相同的代码部署在url类似于“crmtest.com/servlet123”的测试环境中时,这将不起作用。如果我的问题不清楚,很抱歉。我必须从地址栏中动态获取url,然后将其拆分,而不是让url准备就绪,然后再拆分。@user1611498-你确定知道你在做什么吗?如果是这样,那么你必须告诉我们你使用或想要使用哪个地址栏,你如何使用它等等。是的,请让我解释一下。我写了2条注释,因为注释的大小正在增加。---假设我调用了一个servlet,比如开发实例的“”。一旦servlet123代码被执行,我将其重定向到另一个页面,该页面位于“”。在这种情况下,我可以直接在servlet中硬编码后一个url(),用于重定向,当相同的代码部署在url类似“”的测试环境中时,这将不起作用。因此,我要做的是,动态获取主机名,无论它是“”还是“”,然后附加下一个页面名(“/MyHomePage”),这对于这两个实例都很常见。希望这是明确的,请让我知道,如果它还不能理解。