分享
 
 
 

Java的网络知识

王朝java/jsp·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

(1) 从网络上加载APPLE(小应用程序)

现在的大多数浏览器都不约而同地对Java进行支持。在HTML语言中,在.html文件的任何的位置上有一个特殊标记。这句话就是对小应用程序的引用。小应用程序没有受到地域的限制,它可以在本地,也可以在Internet上的任何一个地方。其位置对于用户来讲是透明的。而对于浏览器来讲,其位置在中被读出,然后进行定位小应用程序,并运行它。如果小应用程序位于远程计算机上,那么浏览器就必须小载它,然后才可运行。(2) 从URL加载图像首先,必须先介绍URL。它表示一个通过资源定位器(Uniform Resource Locator),是网络上某些资源的地址。Java程序可以使用一个URL来引用或连接网络资源。如:如果需要从远程加载一张图时,Java程序必须先创建一个URL,以包含图像的地址。URL是Java程序里高级别的交互功能。二、URL及其使用URL代表通用资源定位器。将URL提供给网络浏览器,那么它就可以在Internet上寻找并定位文件。在编写Java程序时,也可以用URL在互联网上寻找希望访问的资源。类组java.net中包含一个名为URL的类,Java可以使用它来表示一个URL地址。这里需要区别的是:URL地址表示一个Internet地址,而URL对象则指代Java程序中的类URL的一个实例。(1) URL的定义URL是一个缩写,代表通过资源定位(Uniform Resource Locator),是对Internet资源的一个引用(一个地址)。URL不但可以表示网络上的一个文件的名称,而且可以指向网络上的其它资源,如:数据库查询和命令输出。如:http://java.sun.com//所有的URL拥有两个主要的组成部分:(1) 协议辨识符;(2) 资源名称。上面的例子中,http为协议辨识符,而//java.sun.com/为资源名称。协议辨识符说明被使用来获取资源的协议的名称。示例使用超文本传输协议(HTTP),它用在超文本文档服务中使用。HTTP只是被用来访问网上不同类型资源的多种不同协议之一。其它的协议还包括文件传输协议(FTP)、gopher、文件(file)和新闻(news)。资源名称是资源的完整地址。资源名称的格式完全依赖于使用的协议,但对于大多数格式而言,资源名称包括下面组件的一种或多种:(1) 宿主名称:资源所处的机器的名称。(2) 文件名:机器上文件的路径。(3) 端口号:连接的端口号(一般为可选项)。(4) 引用:对于资源内部一个有名连接(anchor)的一个引用;它常常指代一个文件内的特定位置(一般为可选项)。大多数情况下,宿主名称和文件名是必须的,而端口号以及引用则是可选的。上面的示例中java.sun.com为宿主名称,冒号后的第一个斜线’/’是文件/index.html的简写。在构建任何URL的时候,都应该将协议辨识符放在首位,后面紧跟冒号’:’,然后才是资源名称,即:protocolID:resourceName在类组java.net中包含一个类URL,Java程序使用它代表一个URL地址。Java程序可以构造一个URL对象,打开对它的一个连接,然后在这个连接中读入和写出。三、创建一个URL在Java程序中,可以创建一个URL对象以表示一个URL地址。URL对象总是指向一个绝对的URL,但它可以由一个绝对的URL、一个相对的URL或URL组件构造而来。创建一个URL对象的最简单的方法就是从一个表示URL地址的“可阅读”形式的字符串创建。在Java中,可以使用上述文字的字符串创建一个URL对象:URL gamelan=new URL(http://www.linuxaid.com.cn/)这种方法创建的URL对象表示一个绝对的URL。一个绝对的URL包含了到达资源所需的所有信息。另外,还可以由一个相对的URL地址创建URL对象。(1) 相对URL一个相对URL只包含到达对于另一个URL(或处于另一个URL上下文之中)的资源的足够信息。在HTML文件中常常使用相对的URL指定资源的位置。如有两个文件1.html、2.html和3.html,并且它们在同一个目录下面,那么在1.html中如果需要调用2.html和3.html则必须写入:My Story

Picture of My Pets

这些URL均为相对的URL,即:这些URL相对于包含它们的文件1.html。

在Java中中,可以由一个相对的URL指定创建一个URL对象。例如,假设程序已经为http://www.linuxaid.com.cn/创建了一个URL对象,而且已经知道该站点的一个文件的名

称为linuxaid.animation.html,则就可以在初始的linuxaid URL上下文中,通过简单地指定文件名,为linuxaid站点的这个文件创建URL:

URL linuxaid = new URL(http://www.javaworld.com/);

URL linuxaidanimation = new URL(linuxaid,”linuxaid.animation.html”);

上面的代码使用用了类URL的另一种形式的构造过程,它允许你由一个URL对象(基本URL)和一个相对的URL创建一个对象。

这个构造过程也可以用来创建对一个文件中的有名连接(引用)的URL对象。例如,假设文件“linuxaid.animation.html”中包含一个有名连接BOTTOM,它在文件的底部,

则可以使用相对URL构造过程创建一个URL对象(在下面的语句中BOTTOM前的字符#是必须的):

URL linuxaidAnimationBottom=new URL(linuxaid,”#BOTTOM”);

这种URL构造过程的一般形式为:

URL(URL baseURL,String relativeURL)

其中,第一个参数是一个URL对象,指定新的URL的基址,第二个参数为一个String对象,是对相对于基址的资源名称的描述。如果baseURL为null,那么这个构造过程就

将relativeURL视为一个绝对的URL指定。但如果relativeURL是一个绝对的URL指定,那么构造过程将忽略baseURL。

(2)其它的URL构造过程

除前面介绍的类URL的构造过程外,类URL还提供了另外两个构造过程。当你使用URL的时候,例如HTTP的URL,它的资源名称部分包含宿主名称、文件名称、端口号和

引用等组件,这些构造过程就很有用了。如果不清楚包含完整URL的String对象,只要知道URL的不同组件,使用这两个构造过程就显得非常方便。

如果需要设计一个网络程序,让用户使用鼠标选择协议、宿主名称、端口号和文件名,则可以由这些组件构造一个URL。类URL提供了用协议、宿主名称和文件名创建一

个URL的构造过程。下面的代码就创建了一个指向linuxaid站点的linuxaid.animation.html文件的URL:

URL linuxaid = new URL(“http”,”www.linuxaid.com.cn”,”/linuxaid.animation.html”);

该语句和URL linuxaid=URL(http://www.linuxaid.com.cn/linuxaid.animation.html);是等价的。其中,第一个参数为协议,第二个参数为宿主名称,最后一个为文件的路径名。

注意,文件名的开头为一个斜线’/’,说明文件名相对于宿主的根目录。

类URL的另一个构造过程还在参数列表中添加了端口号,例如:

URL linuxaid = new URL(“http”,www.linuxaid.com,80,”/linuxaid.animation.html”);

其中,80是端口号,别的参数同前。该语句创建了如下的一个URL对象:

http://www.linunaid.com.cn:80/linunxaid.animation.html

如果使用这些过程创建一个URL对象,就可以通过使用URL的过程toString()或过程toExternalForm()得到一个包含完整URL地址的String对象。

(2) 异常MalformedURLException

在类URL的构造过程的两个版本中,当传递给它们的参数指向一个空的或不知道的协议时,它们都抛出一个MalformedURLException异常。如果希望捕捉和处理这个异

常,只要将URL的构造过程语句放在一个try/catch中即可。例如:

try{

URL url=new URL(….);

}catch (MalformedURLException e){

//异常处理代码

}

四、分析一个URL

类URL提供一些查询URL对象的过程,可以用它们获取一个有效的URL对象所包含的协议、宿主名称、端口号和文件名。下面是这些过程的功能描述:

(1) getProtocol( ),返回URL的协议辨识符组件。

(2) getHost(),返回URL的宿主名称组件。

(3) getPort(),返回URL的端口号组件;如果端口没有设置,返回-1;

(4) getFile(),返回URL的文件名组件。

(5) getRef(),返回URL的引用组件。

请注意;并非所有的URL地址都包含这些组件。类URL提供这些过程的原因是HTTP URL包含这些组件,而且它们可能是最常使用的URL。类URL在某种程序是以HTTP为

中心的。

可以使用这些getXXX()过程获取关于URL的信息,它们与创建URL对象的构造过程无关。

下面给出一个示例程序ParseURL,它由一个指定URL的字符串创建了一个URL对象,然后使用URL对象的存取过程分析URL;

import java.net.*;

class ParseURL{

public static void main(String[] args){

URL url = null;

try{

url = new URL(http://www.ncsa.uiuc.edu:8080/demoweb/urlprimer.html#INSTALL);

System.out.println(“protocol = “+ url.getProtocol());

System.out.println(“host =”+url.getHost());

System.out.println(“filename =”+url.getFile());

System.out.println(“port=”+url.getPort());

System.out.println(“ref=”+url.getRef());

}catch (MalformedURLException e){

System.err.println(“MalformedURLException:”+e);

}

}

}

下面是程序执行的结果:

prot

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有