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://[email protected]: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

 

  

猜你喜欢

转载自www.cnblogs.com/Mrchengs/p/10914470.html
今日推荐