有很多关于互联网的讨论,发布,评论和问题,以区分URI,URL和URN。 关于它的一个answer解释了它,但我对我的代码中的实现结果感到困惑。
问:如果URI是超级网址集,那么它是如何得到以下输出的:
URI : /XXX/abc.do
URL : http://examplehost:8080/XXX/abc.do
当我写下面代码时:
System.out.println(“URI : “+ httpRequestObj.getRequestURI());
System.out.println(“URL : “+ httpRequestObj.getRequestURL());
编辑:您能否通过将JAVA和URI,URL和URN的原始概念保持在范围内来分享详细答案。
此致
答案 0 :(得分:5)
java.net.URI API提供了一个很好的解释:
URI是统一资源标识符,而URL是统一资源定位符。因此,抽象地说,每个URL都是一个URI,但不是每个URI都是一个URL。这是因为URI的另一个子类别,统一资源名称(URN),它们命名资源但不指定如何定位它们。上面显示的mailto,news和isbn URI是URN的示例。
答案 1 :(得分:1)
如果URI是超级URL的设置,那么它是如何得到以下输出的......
URI和URL的定义不能用于推断getRequestURI()
和getRequestURL()
的行为。要了解方法返回的内容,您需要阅读javadocs和Servlet规范。
这些方法的含义就是它们的含义,因为HttpRequest
API随着时间的推移而发展,并且进化必须保持向后兼容性。
getRequestURI()
会返回一个URI,而getRequestURL()
会返回一个网址,但URI和网址会针对不同的内容。