URI 类在某些特定情况下对其组成字段执行转义。建议使用 URI 管理 URL 的编码和解码,并使用 toURI() 和 URI.toURL() 实现这两个类之间的转换
解决方案 »
- public class 与 普通class
- java 基本问题
- 大家现在用Java做项目都用什么开发工具开发
- java面试一般都考什么? 我应该做哪些准备呢, 面试题一般好像不简单哟!
- 实力强的QQ群,程序员在深圳群有5个群(人数早已超过一千人),云集了深圳范围内的软件精英
- 求计算个人所得税的代码....
- 小弟刚学JAVA,第一个问题是请各位兄台推荐几本JAVA的精典书籍
- 求教:远程操作文件
- 如何获取焦点
- 中文问题:我的数据库中,中文写入没有问题,但中文却不能正常读出。(sqlserver2000)
- 配置ini文件的一个正则表达式的问题
- 码友们 帮忙跟我把这个调出来(我对扫描器不熟) 熟的应该加几句就能解决的…………感知不劲
此类支持的主要运算有规范化、解析 和相对化 运算。
规范化 是将分层 URI 的路径组成部分中的不必要的 "." 和 ".." 部分移除的过程。每个 "." 部分都将被移除。".." 部分也被移除,除非它前面有一个非 ".." 部分。规范化对不透明 URI 不产生任何效果。 解析 是根据另一个基本 URI 解析某个 URI 的过程。得到的 URI 由两个 URI 组成部分构造,构造方式由 RFC 2396 指定,从基本 URI 取出原始 URI 中未指定的组成部分。对于分层 URI,原始的路径根据基本路径进行解析,然后进行规范化。例如,解析以下 URI docs/guide/collections/designfaq.html#28 (1)
根据基本 URI http://java.sun.com/j2se/1.3/ 解析,结果为 URI
http://java.sun.com/j2se/1.3/docs/guide/collections/designfaq.html#28
解析相对 URI
../../../demo/jfc/SwingSet2/src/SwingSet2.java (2)
根据此结果应生成
http://java.sun.com/j2se/1.3/demo/jfc/SwingSet2/src/SwingSet2.java
支持对绝对和相对 URI,以及分层 URI 的绝对和相对路径的解析。根据任何其他 URI 对 URI file:///~calendar 进行解析只能生成原始的 URI,因为它是绝对路径。根据相对基础 URI (1) 解析相对 URI (2) 将生成规范的但依然是相对的 URI
demo/jfc/SwingSet2/src/SwingSet2.java
最后,相对化 是解析的逆过程:对于任何两个规范的 URI u 和 v, u.relativize(u.resolve(v)).equals(v) 和
u.resolve(u.relativize(v)).equals(v)。此运算在下面的场合非常有用:构造一个包含 URI 的文档,该 URI 必须尽可能是根据文档的基本 URI 建立的相对 URI。例如,相对化 URI
http://java.sun.com/j2se/1.3/docs/guide/index.html
根据基本 URI
http://java.sun.com/j2se/1.3
生成了相对 URI docs/guide/index.html
String reference = "book.html";
URI baseUri = new URL(base.trim()).toURI();
URI uri = new URL(reference.trim()).toURI();
System.out.println(baseUri.resolve(uri).toString());
//http://www.hao123.combook.html这样报错 no protocol: book.html
楼主你贴文档啊
我看了文档,但没办法解决
String base = "http://www.hao123.com";
String reference = "book.html";
URL url;
try
{
url = new URL(new URL(base), reference);
System.out.println(url);
}
catch (MalformedURLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
主要看构造函数那块,那里又描述的
我在贴文档,给你看哈context - 要在其中解析规范的上下文。 这个就相当于你的基本路径
spec - 将作为 URL 解析的 String。 这个就相当于你的相对路径他们组合就是绝对路径URL了
http://www.hao123.com/book.html没啥特殊的
String reference = "/book.html";
URI baseUri = new URI(base.trim());
URI uri = new URI(reference.trim());
System.out.println(baseUri.resolve(uri).toString());
打开源文件看下,网页的相对路径前面都有"/",这样绝对路径就对了.