URL和URI

分解URL

URL由以下5部分组成:

1、模式(协议)

2、授权机构

3、路径

4、片段标识符(段/ref)

5、查询字符串

http://www.mrchengs.com/java/shop/index.html?age=12

协议:http

授权机构:www.mechengs.com

路径:/java/shop/index.html

查询字符串:age=12

授权机构:用户信息、主机、端口

http://admin@www.mrchengs.com:8080/

9个公共方法提供了URL这些部分的只读访问:

1、getFile()  2、getHost()  3、getPort()

4、getProtocol()  5、getRef()  6、getQuery()

7、getPath()  8、getUserInfo()  9、getAuthority()

img

img

相等性比较

URL类通常的equals()和haashCode()方法

与之前使用方式一致

比较

URL有3个方法可以将一个实例转换为另一种形式

1、toString():绝对的URL

2、toExternalForm():将一个URL对象转换为一个字符串,返回一个可读的String

3、toURI():将URL对象转为对应的URI对象

img

img

URI类

URI是对URL的抽象

不仅包括统一的资源定位符

还包括统一的资源名

使用URI的次数大于使用URL

大多数的会犯和标准都是URI定义的

与URL类的区别:

img

img

构造一个URL

img

URI类不依赖底层协议处理器

只要语法上正确,Java就不需要为了创建URI对象而理解其协议

第一个构造函数根据满足任何条件的字符串创建一个新的URI对象:

img

第二个构造函数需要一个模式特定的部分,主要是非层次的URI

模式是URI的协议,必须有ASCII字母、数字及三个标点符号(+ - 。)组成

这个参数传为null,则省略模式

img

img

第三个构造函数用于层次URI,如http和ftp URL

主机和路径(使用 / 分割) 共同构成这个URL的模式特定部分

img

img

第四个构造函数与前一个基本相同,只是添加了一个查询字符串部分

img

第五个构造函数是前面两个构造函数调用主层次URI构造函数

这个方法将授权机构分解为用户信息、主机和端口

img

第六个方法,在确定URI有效的情况下

img

URI的各部分

URI引用最多三个部分:模式、模式特定部分、片段标识符

模式:模式特定部分“片段

如果省略了模式,这个URL是相对的

如果省略了片段标识符,这个URI就是一个纯URI

getRawFoo()方法返回URI各个部分的编码形式

相应的getFoo()方法首先对所有用白粉还转移的字符进行解码,然后回解码后的部分:

img

img

isAbsolute()方法

img

isOpaque()方法

img

img

img

img

img

img

解析相对URI

提供三个方法而将在相对和绝对之间来回转换

img

1、resolve()方法将uri参数与这个URI进行比较,并且构造一个新的URI对象

这个对象包装了一个绝对URI

img

2、resolve(String uri)

调用URI本身不包括绝对的URI

img

3、relativize()方法很对相对于调用的URI的uri参数创建一个新的URI对象

img

字符串表示

img

URLRncoder

img

URLDecoder

img

转载:https://www.cnblogs.com/Mrchengs/p/10914470.html

posted @ 2021-03-02 19:05  某菜狗  阅读(299)  评论(0编辑  收藏  举报