网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.LN2 属性.
.MD5的JavaBean实现.
.对等计算实际应用之:网络信任与.
.java连接sqlserver实例.
.Java学习:解决J2ME中的内存泄漏.
.setUTCMilliseconds 方法.
.getUTCMinutes 方法.
.用Java动态代理类实现记忆功能.
.JAVA应用问答.
.Sequoia 2.5 发布-JD.
.JBuilder 7 WebLogic 6.X 详细配.
.【Java】命令行参数的获取及判断.
.学习Jakarta Struts 1.1 (二).
.Spring创建一个简单的工作流引擎.
.JBuilder开发Struts+Hibernate框.
.轻松测试-学习如何简化测试外部资.
.Spring+Hibernate乱码解决方案.
.[JAVA100例]037、读取随机文件.
.实战体会Java多线程编程的精要.
.通过ClassLoader管理组件依赖(图).

Java网络编程之URI、URL研究(上)

发表日期:2008-1-5




Java网络编程之URI、URL研究(上)
  URI、URL和URN是识别、定位和命名互联网上的资源的标准途径。本文分析了URI、URL和URN和Java API的URI和URL类(以及与URL相关的类),并演示了如何在程序中使用这些类。

  1989年Tim Berners-Lee发明了互联网(World Wide Web)。WWW被认为是全球互连的实际的和抽象的资源的集合--它按需求提供信息实体--通过互联网访问。实际的资源的范围从文件到人,抽象的资源包括数据库查询。因为要通过多样的方式识别资源(人的名字可能相同,然而计算机文件只能通过唯一的路径名称组合访问),所以需要标准的识别WWW资源的途径。为了满足这种需要,Tim Berners-Lee引入了标准的识别、定位和命名的途径:URI、URL和URN。

  URI、URL和URN是什么?

  体系中的URI、URL和URN是彼此关联的。URI的范畴位于体系的顶层,URL和URN的范畴位于体系的底层。这种排列显示URL和URN都是URI的子范畴,如图1所示:

Java网络编程之URI、URL研究(上)
图1:URI、URL和URN之间的层次关系。URL和URN是URI的子范畴。

  URI表示的是统一的资源标识,它是以某种统一的(标准化的)方式标识资源的简单字符串。典型情况下,这种字符串以scheme(命名URI的名字空间的标识符--一组相关的名称)开头,语法如下:

  [scheme:] scheme-specific-part

  URI以scheme和冒号开头。Scheme用大写/小写字母开头,后面为空或者跟着更多的大写/小写字母、数字、加号、减号和点号。冒号把scheme与scheme-specific-part分开了,并且scheme-specific-part的语法和语义(意思)由URI的名字空间决定。其中一个例子是http://www.cnn.com,其中http是scheme,//http://www.cnn.com是 scheme-specific-part,并且它的scheme与scheme-specific-part被冒号分开了。
我们可以把URI按照绝对的或相对的分类。绝对的URI指以scheme(后面跟着冒号)开头的URI。前面提到的http://www.cnn.com就是绝对的URI的一个例子,其它的例子还有mailto:jeff@javajeff.com、news:comp.lang.java.help和xyz://whatever。你可以把绝对的URI看作是以某种方式引用某种资源,而这种方式对标识符出现的环境没有依靠。假如使用文件系统作类比,绝对的URI类似于从根目录开始的某个文件的路径。与绝对的URI不同的,相对的URI不是以scheme(后面跟着冒号)开始的URI。它的一个例子是articles/articles.Html。你可以把相对的URI看作是以某种方式引用某种资源,而这种方式依靠于标识符出现的环境。假如用文件系统作类比,相对的URI类似于从当前目录开始的文件路径。

  URI可以进一步分为不透明的和分层的两类。不透明的URI指scheme-specific-part不是以正斜杠(/)开头的绝对的URI。其例子有news:comp.lang.java和前面的mailto:jeff@javajeff.com。
不透明的URI并不是用于分解的(超出了识别scheme的范畴),因为不需要验证scheme-specific-part的有效性。与它不同的是,分层的URI可以是以正斜杠开头的绝对的URI或相对的URL。

  与不透明的URI不同,分层的URI的scheme-specific-part必须被分解为几个组成部分。这些组成部分是什么?分层的URI标识组件的普通子集的scheme-specific-part符合下面的语法:

  [//authority] [path] [?query] [#fragment]

  可选的authority组件标识了该URI名字空间的命名机构。假如有这一部分,它就是以一对正斜杠开始的,它可以是基于服务器或基于注册的,并且它以后面的正斜杠、问号或没有其它符号结束。基于注册的授权机构组件有特定大纲的语法(本文没有讨论,因为很少使用它),而基于服务器的授权机构组件的语法如下:

  [userinfo@] host [:port]

  按照这种语法,基于服务器的授权机构组件可以随意的以用户信息(例如用户名)开始,后面跟着一个@符号,紧接着是主机的名称,以及冒号和端口号。例如jeff@x.com:90就是一个基于服务器的授权机构组件,其中jeff包含了用户信息,x.com包含了主机,90包含了端口。

  可选的path组件根据授权机构组件(假如提供了)或大纲(假如没有授权机构组件)识别资源的定位(或位置)。路径(path)可以分成一系列的路径片断(path segment),每个路径片断使用正斜杠与其它的路径片断隔开。假如路径的第一个路径片断以一个正斜杠开始,该路径就被认为是绝对的。否则路径就被认为是相对的。例如,/a/b/c由三个路径片断--a、b和c组成了一个路径,此外,这个路径是绝对的,因为第一个路径片断(a)的前缀是正斜杠。

上一篇:Java中的抽象数据类型探讨 人气:565
下一篇:国内不谈Java--硅谷有感 人气:550
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐