java的URI和URL到底是什么

在我们做开发时,经常有URI和URL弄混的问题,如果当时直接看URI和URL的源码就不可能弄混。首先我总结一下URI和URL的关系:他们的关系是:URL是一种特殊的URI,是URI包括URL,

下面用公式的形式说明URI到底是什么?

URI=[scheme:]<scheme-specific-part>[#fragment]   这正好可以用URI类中的getScheme   getSchemeSpecificPart 以及getFragment得到.

在scheme为null时,这个URI被称为相对的URI。 在scheme不为空时URI称为绝对的URI

而<scheme-specfic-part>=[//authority]<path>[:query]

在path为空时称为不透明的URI,在不为空时称为透明的URI

authority 又可以分为:[[email protected]]<host>[:port]

从这个公式我们可以看到URI确实包括URL。

下面写一个示例代码

package com.timo;

import java.net.URI;

public class URITest {
    public static void main(String[] args) throws Exception{
        //创建一个uri,根据[scheme:]<scheme-specific-part>[#fragment]
        URI uri = new URI("http", "//[email protected]:8080/oi/oi?user=‘aieg‘", "iewio");
        System.out.println(uri);
        System.out.println(uri.getPath());
    }
}

调试代码的图片如下,从下图可以看到上述公式的各个值是什么。

原文地址:https://www.cnblogs.com/1540340840qls/p/9426764.html

时间: 2024-10-06 00:38:58

java的URI和URL到底是什么的相关文章

Java网络编程-URI和URL

前提 前面的一篇文章<Java中的Internet查询>分析完了如何通过IP地址或者主机名确定主机在因特网中的地址.任意给定主机上可能会有任意多个资源,这些资源需要有标识符方便主机之间访问对方的资源,因此这篇文章深入分析一下URL和URI. URI URI全称是Uniform Resource Identifier,也就是统一资源标识符,它是一种采用特定的语法标识一个资源的字符串表示.URI所标识的资源可能是服务器上的一个文件,也可能是一个邮件地址.图书.主机名等.简单记为:URI是标识一个资

java网络---再论URL &amp; URI

关于URL 和URI的关系,在本系列的第二篇:java网络---基本web概念 中已经简述了. 这里重复一点,就是URI包含URL,或者说URI是父类,URL就是子类的概念. 本篇再来详述这2个概念. 一:URL java/net/URL.java public final class URL implements Serializable { private static final long serialVersionUID = -7627629688361524110L; private

Java魔法堂:URI、URL(含URL Protocol Handler)和URN

一.前言 过去一直搞不清什么是URI什么是URL,现在是时候好好弄清楚它们了!本文作为学习笔记,以便日后查询,若有纰漏请大家指正! 二.从URI说起    1. 概念 URI(Uniform Resource Identifier,统一资源标识符)以字符串来表示某种资源的统一资源标识. 格式为: [scheme:]scheme-specific-part[#fragment] [scheme:]组件 ,URI的名称空间标识. scheme-specific-part组件 ,用于标识资源,内部格式

java URI 与URL问题

File类存在两个看起来很相似的方法toURI()和toURL(),这两个方法都是将文件转换成一个链接,可以网络访问.只是URI和URL的应用范围不同,URI来的更广. 那么为什么要使用toURI()而不是toURL()呢?如果要将文件转换成一个URL的话,这样来得更简单.因为toURL()存在bug. 在File转化成URI的时候,会将链接中的特殊字符如#或!等编码,而toURL()确不会. 如将“C:Documents and Settingstest.xsl”进行转化 toURI()得到的

URI和URL的区别

这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等.但是,每次定义的时候,心里都很纠结,是该用imgUrl还是imgUri呢? 同样的,另外一个问题:String HttpServletRequest.getRequestURI():和StringBuffer HttpServletRequest.getRequestURL();返回的内容有何不同?为什么会如此? URIs, URLs, and U

uri,url和urn的区别

这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等.但是,每次定义的时候,心里都很纠结,是该用imgUrl还是imgUri呢? 同样的,另外一个问题:String HttpServletRequest.getRequestURI():和StringBuffer HttpServletRequest.getRequestURL();返回的内容有何不同?为什么会如此? 带着这些问题到网上去搜了下,没发现

URI和URL的区别 【转】

源地址:http://www.cnblogs.com/gaojing/archive/2012/02/04/2413626.html 这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等.但是,每次定义的时候,心里都很纠结,是该用imgUrl还是imgUri呢? 同样的,另外一个问题:String HttpServletRequest.getRequestURI():和StringBuffer Htt

URI和URL的区别(转)

1说明: 这段时间写android的时候用到了URL和URI,有点分不清楚,于是做了一个系统性的学习.在这里将自己的学习笔记粘贴出来,希望对大家有帮助. 1)Java类库里有两个对应的类java.net.URL和java.net.URI,官方的定义分别如下: (URL)A Uniform Resource Locator thatidentifies the location of an Internet resource as specified by RFC 1738.(统一资源定位符用于标

URI 和URL分别指什么?

URL和URI的区别 String HttpServletRequest.getRequestURI() 和StringBuffer HttpServletRequest.getRequestURL() 返回的内容有何不同?为什么会如此? 首先,URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源.而URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何lo