URL编程

一、URL的构成:


注:资源路径还可以包含HTML文件中的参考位置(也称为参考点),一般用#表示,如http://tech.sina.com.cn:80//default.html#memo_1,此处memo_1是default.html中的一个位置。

以上采用的URL都是网络资源的完整路径,称为绝对URL;但有时也使用相对URL,它不包括协议和主机信息,表示文件在主机上的相对位置,相对URL可以是一个文件名,也可以是一个包括路径的文件名。


二、URL类

1、URL类的使用:

Java语言访问网络资源通过URL类来实现,URL定义了统一资源定位器来对网络资源进行定位,还包括一些访问方法。

URL对象指向网络资源,如网页、图形图像、音频视频等文件,创建URL对象后可得到URL各个部分的信息,获取URL内容。

URL的构造方法主要有以下四种:

(1)public URL(String url)

如:URL url1=new URL("http://www.163.com");


(2)public URL(URL baseURL,String relativeURL)

baseURL为绝对地址,relativeURL为相对位置,如:

URL gameWeb=new URL("http://www.ourgame.com/");

URL myGame=new URL(gameWeb,"pai/sandaha.html");

如果第一个参数为空,则与第一种构造方法相同。


(3)URL(String protocol,String host,String fileName)

文件名前可以带上路径

(4)URL(String prorocol,String host,int port,String fileName)


注:URL的构造方法都会抛出malformedURLException异常(畸形URL异常),生成URL对象时,必须对这个异常进行处理,否则系统编译通不过。


2、URL类的主要方法:

getContent( ) //获取URL的内容

getDefaultPort( ) //获取URL的默认端口

getFile( ) //获取URL的文件名

getHost( ) //获取URL的主机名

getPath( ) //获取URL的路径

getPort( ) //获取URL的端口

getProtocol( ) //获取URL的协议名

getUserInfo( ) //获取URL的用户信息

openStream( ) //打开URL连接,并返回在此连接上的输入流

set(String protocol,String host,int port,String file,String ref)

//设置URL各部分的参数


3、URLConnection类:    

当涉及向服务器提供信息的问题时,如发送一个表单、向搜索引擎提供关键字等,需要运用URLConnection(URL连接),它是Java程序和URL之间创建通信链路抽象类

可用于连接由URL标识的任意资源,该类的对象既可以从资源中,也可向资源数据。

(1)URL连接的创建

URLConnection类的构造方法只有一个,即:

URLConnection(URL url) //构建一个与URL的连接


(2)常用方法:

public InputStream getInputStream( ) throws IOException: 打开一个连接到该URL的InputStream的对象,通过该对象,可从URL中读取Web页面内容。

public OutputStream getOutputStream( ) throws IOEception:    生成一个向该连接写入数据的OutputStream对象。

public void setDoInput(Boolean  doInput): 若参数doInput是true,表示通过该URLConnection进行操作,即从服务器读取页面内容。默认情况是true,同时读取内容。

public void setDoOutput(Boolean doOutput): 若参数doOutput是true,表示通过URLConnection进行操作,即向服务器上的CGI程序(或ASP程序、JSP程序等)上传内容,默认是false

public abstract void connect( ) throws IOException: 向URL对象所表示的资源发起连接。若已存在这样的连接,则该方法不做任何操作。

public String getHeaderFieldKey(int n): 返回HTTP响应头中第n个域的“名-值”对中“”的内容,n从1开始。

public String getHeaderField(int n): 返回HTTP响应头中第n个域的“名-值”对中“”这一部分的内容,n从1开始。

用户创建了URL类对象后,通过其openConnection方法获得URLConnection类的对象,其过程如下:

try{

URL myWeb=new URL("http://www.cctv.com");

URLConnection connection=myWeb.openConnection( ); //通过URL类对象openConnection方法获得URLConnection类的对象

}catch(Exception e){

System.out.println(e.toString( ));

}


3、读写操作:

建立好了URL连接,就可针对这个连接的输入流(InputStream)进行读操作,也可以针对这个连接的输出流(OutputStream)进行写操作,这时需要调用方法setDoOutput将输入属性设置为真(true),指定该连接后写入内容。


4、使用URLConnection类进行网络通信的基本步骤:

1)创建URLConnection类的对象

第一步:建立URL对象;第二步:调用这个对象的openConnection方法,返回一个对应其URL地址的URLConnection对象

2)建立输入输出数据流

利用URLConnection类的方法getInputStreamgetOutputStream获取输入输出数据流。

3)从远程计算机节点上读取信息或者写入信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值