服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java网络编程之uri、url研究(上)

ad_qqread_mid_big">   uri类支持基本的uri操作,包括标准化(normalization)、分解(resolution)和相对化(relativization)。标准化是通过uri的normalize()方法支持的。调用normalize()时,它返回对新uri对象的引用,该对象包含调用的uri对象的uri的标准的表现。

  列表2演示了normalize()方法。它把uri作为程序的唯一的参数,uridemo2打印出标准的相等的uri。

  列表2: uridemo2.java

// uridemo2.java

import java.net.*;

class uridemo2
{
public static void main (string [] args) throws exception
{
if (args.length != 1)
{
system.err.println ("usage: java uridemo2 uri");
return;
}

uri uri = new uri (args [0]);

system.out.println ("normalized uri = " +
uri.normalize ().tostring ());
}
}

  在编译uridemo2后,在命令行输入java uridemo2 x/y/../z/./q,将看到下面的输出:

normalized uri = x/z/q

  上面的输出显示y、..和.消失了。这是因为..意味着你想直接在x下面访问名字空间的z部分,.意味着你希望访问与z部分相关的名字空间的q部分。

  uri通过提供resolve(string uri)、resolve(uri uri)和relativize(uri uri)方法支持反向解析和相对化操作。如果uri引用是空的(null)这三个方法都会产生nullpointerexception对象。同样,如果指定的uri违反了rfc 2396语法规则,resolve(string uri)通过的内部的create(string uri)调用间接地产生一个illegalargumentexception对象。

  列表3的代码演示了resolve(string uri)和relativize(uri uri)。

  列表3: uridemo3.java

// uridemo3.java

import java.net.*;

class uridemo3
{
public static void main (string [] args) throws exception
{
if (args.length != 2)
{
system.err.println ("usage: " +
"java uridemo3 uribase urirelative");
return;
}

uri uribase = new uri (args [0]);
system.out.println ("base uri = " +uribase.tostring ());

uri urirelative = new uri (args [1]);
system.out.println ("relative uri = " +urirelative.tostring ());

uri uriresolved = uribase.resolve (urirelative);
system.out.println ("resolved uri = " +uriresolved.tostring ());

uri urirelativized = uribase.relativize (uriresolved);
system.out.println ("relativized uri = " +urirelativized.tostring ());
}
}

  在编译uridemo3后,在命令行输入java uridemo3 http://www.somedomain.com/ x/../y. ,输出如下:

base uri = http://www.somedomain.com/
relative uri = x/../y
resolved uri = http://www.somedomain.com/y
relativized uri = y

  上面的输出显示相对的uri的x/../y根据基础uri http://www.somedomain.com/分解并(在内部)标准化,取得了已分解的http://www.somedomain.com/uri。给定该uri和基础uri,该已分解的uri根据基础uri相对化获得了y,它是原始的但是标准的相对的uri。

  技巧

  调用uri的tourl()方法把uri转换为url。

  在本周日的专题中我将向读者介绍如何使用url以及mime(多用途的网际邮件扩充协议)的概念以及它如何与url发生联系,敬请期待。
>>>更多专题请看java的类  java网络专题
上一页 1 2 3 4 5 6 
相关内容:邮件  协议  网络协议  网络编程  数据库  
【收藏此页】【大 中 小】【打印】【关闭】
上一篇:java中的抽象数据类型探讨
下一篇:国内不谈java--硅谷有感


10万个软件免费高速下载
教育教学 安全相关 游戏娱乐 源码下载 编程开发 数码软件 其它类别
网络软件 联络聊天 系统工具 媒体工具 图形图像 应用软件 行业软件
·网络编程--wininet
·用java.nio.*进行网络编程
·扔掉socket实现网络编程
·vc网络编程入门
·实例解析ipv6下的vc网络编程
·c++网络编程卷1 笔记:ace_message_bl
·使用mfc快速实现网络编程 casyncsock
·java socket网络编程初级入门
·windows socket 网络编程(一) -- tcp
·多线程在visual c#网络编程中的应用(
 
·接口和抽象类的定义方式举例说明
·用maven制作java项目发行包
·java 基础入门 pom.xml 元素描述
·用jbuilder2007开发扩展jsf标签的插
·抽象类对象类和对象包装类
·使用java实现在文件中添加字符串
·instanceof和回调概念
·java变量的赋值与传递
·java se6调用java编译器的两种新方法
·weblogic运用db的java控件访问数据库

扫描关注微信公众号