java的网络类可以让你通过网络或者远程连接来实现应用。而且,这个平台现在已经可以对国际互联网以及url资源进行访问了。java的url类可以让访问网络资源就像是访问你本地的文件夹一样方便快捷。我们通过使用java的url类就可以经由url完成读取和修改数据的操作。现在,我们来看一看,如何才能发挥出url类的效力。
通过url进行工作
通过一个url连接,我们就可以确定资源的位置,比如网络文件、网络页面以及网络应用程序等。其中包含了许多的语法元素。举个例子来说,请看下面这个url连接:
http://www.mycompany.com:8080/mywebapps/awebapp
这个连接规定使用http协议。主机名称为www.mycompany.com。端口号为8080。这个url的其它部分, /mywebapps/awebapp,则确定了我们要在这个站点上所要访问的资源。在这个例子中的资源恰好是一个网络应用程序。而且,url还可以包含其它的元素,比如说文件段以及查询信息等等。
从url得到的数据可以是多种多样的,这些都需要一种统一的机制来完成对url的读取与修改操作。java语言在它的java.net软件包里就提供了这么一种机制。有关这个java.net软件包的问题我们会在url class的部分中进行讨论。
url class是从url标示符中提取出来的。它允许java程序设计人员打开某个特定url连接,并对里边的数据进行读写操作以及对首部信息进行读写操作。而且,它还允许程序员完成其它的一些有关url的操作。我们将会讨论由java.io包裹所提供的url class以及stream classes是如何允许你对一个url进行操作的,而且我们将会以对文件以及socket连接的操作差不多的风格对其进行讨论。
构造器
在创建java.net url的实例的时候,你能够利用许多公共构造器,从而让其变得更具灵活性。举个例子来说,这个class提供了一种使用完整url信息串的构造器,一种使用把url信息串分解成为协议、主机名以及文件和资源的构造器,还有一种把url信息串分解成为协议、主机名、端口号以及文件的构造器。我们首先使用完整的url来创建一个url class的例子:url aurl = new url(“http://www.mycompany.com:8080/index.html”);
在这个例子中,我们创建了一个使用完整url的url class,其中明确指出了使用的协议是http,主机名称是www.mycompany.com,端口号码为8080,文件/资源为index.html。如果组成url的语法发生了错误,那么构造器就会发出malformedurlexception。打开一个url连接
一旦你成功的创建了一个url class的实例,你就可以对其进行操作了。但是在你能够访问这个url上的资源和内容之前,你必须要打开到这些资源与内容上的连接。你可以通过使用openconnection来完成这一操作。
使用openconnection并不需要参数,并且在操作成功之后,它会返回一个urlconnection class的实例。在listing a中,向我们演示了打开一个到url连接的过程。一旦你的连接成功,你就可以开始对这个urlconnection的输入以及输出流进行读和写的操作了。
从url连接中读取数据
使用java.io stream class来从url中读取数据是一个非常简单的过程。一旦你建立了一个成功的连接,那么你就可以获得针对这个连接的输入流并且开始进行写的操作了。url可以代表很多不同种类的数据类型所组成的资源。很幸运的是,java.io classes可以以与对文件流或者socket流进行操作的同样方式进行对从urlconnection流返回的数据进行操作。在listing b中,向我们展示了如何从url中读取文本数据。
对url进行写的操作
使用java.io stream classes对url进行写的操作同样也是非常简单的。一旦你建立了一个成功的连接之后,你就可以得到来自此连接的输出流并且开始进行写的操作。当然,只有对于客户所希望的数据进行写的操作才是有意义的。同样的,在获得并对urlconnection流进行写的操作之前,你还需要使用setdooutput(boolean)方式把输出(output)属性设置为真(true)来指定可以进行写操作的那些连接。java.io classes允许你把数据写到urlconnection流,这个操作也和你对文件流和socket流进行的写操作一样。listing c向我们展示了如何把对象数据写入一个url。
其它的操作
你可以从url以及urlconnection对象连接中得到其它类型的信息,比如说主机名、端口、内容长度、内容编码以及内容的类型。把这些方法连同stream i/o classes一起使用可以让你建立复杂而有效的网络客户应用程序和服务。
对网络的便捷访问
由java平台所提供的url class让我们可以方便而有效的访问网络上的资源,而且可以让我们象访问本地文件一样的感到轻松愉快。我们不用为网络通讯的细节问题操心,只需要把注意力集中到制作有用的应用程序和服务上去。
闽公网安备 35060202000074号