3、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()


相等性比较
URL类通常的equals()和haashCode()方法
与之前使用方式一致
比较
URL有3个方法可以将一个实例转换为另一种形式
1、toString():绝对的URL
2、toExternalForm():将一个URL对象转换为一个字符串,返回一个可读的String
3、toURI():将URL对象转为对应的URI对象


URI类
URI是对URL的抽象
不仅包括统一的资源定位符
还包括统一的资源名
使用URI的次数大于使用URL
大多数的会犯和标准都是URI定义的
与URL类的区别:


构造一个URL

URI类不依赖底层协议处理器
只要语法上正确,Java就不需要为了创建URI对象而理解其协议
第一个构造函数根据满足任何条件的字符串创建一个新的URI对象:

第二个构造函数需要一个模式特定的部分,主要是非层次的URI
模式是URI的协议,必须有ASCII字母、数字及三个标点符号(+ - 。)组成
这个参数传为null,则省略模式


第三个构造函数用于层次URI,如http和ftp URL
主机和路径(使用 / 分割) 共同构成这个URL的模式特定部分


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

第五个构造函数是前面两个构造函数调用主层次URI构造函数
这个方法将授权机构分解为用户信息、主机和端口

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

URI的各部分
URI引用最多三个部分:模式、模式特定部分、片段标识符
模式:模式特定部分“片段
如果省略了模式,这个URL是相对的
如果省略了片段标识符,这个URI就是一个纯URI
getRawFoo()方法返回URI各个部分的编码形式
相应的getFoo()方法首先对所有用白粉还转移的字符进行解码,然后回解码后的部分:


isAbsolute()方法

isOpaque()方法






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

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

2、resolve(String uri)
调用URI本身不包括绝对的URI

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

字符串表示

URLRncoder

URLDecoder



浙公网安备 33010602011771号