转载 通过JAVA语言实现使用URL访问网络资源

1.url描述

url是统一资源定位符(uniform resource locator)的简称.它表示互联网上某一资源的地址.浏览器通过给定的url可以找到相应的文件或其他资源.在某些情况下,url中除ip地址以外的部分可以省略.例如:在浏览器地址栏输入java.sun.com,浏览器会默认使用http协议及相应的端口号,并使用web服务器提供的默认的文件.url的一般例子,如: http://java.sum.com , ftp:192.168.10.233 及http://java.sum.com/javase/downloads/index.jsp.

在java中,使用java.net中的url类可以创建代表互联网上某一具体资源的url对象.通过此对象,利用相关的方法,可以轻松的进行网络资源的存取.

2.1 url类

java.net 包提供url类,用url对象表示url地址.

(1) url类的构造方法

url类提供多种不同的构造方法,用于以不同形式创建url对象.

public url(string spec) throws malformedurlexception

public url(url context, string spec) throws malformedurlexception

public url(string protocol, string host, string file) throws malformedurlexception

public url(string protocol, string host, int port, string file) throws malformedurlexception

其中,参数spec是由协议名,主机名,端口号,文件名组成的字符串.参数context是已建立的url对象,参数protocol是协议名,参数host是主机名,参数file是文件名,对数port是端口号.

下面通过各种构造方法创建url对象,分别以不同的方式提供url地址的各部分信息

url myurl1=new url(“http://www.tju.edu.cn:80/”);

url myurl2=new url(“myurl1”,”support/fap.html”);

url myurl3=new url(“http”,”www.tju.edu.cn”,”index.html”);

url myurl4=new url(“http”,”www.tju.edu.cn”,80,”index.html”);

上面的myurl2地址是由myurl1地址和用相对路径表示的文件名会成的,代表的url地址是:http://www.tju.edu.cn:80/support/fap.html

(2)获取url对象的属性

一个url对象中包括各种属性,属性不能被改变,但可以通过下面的方法获取属性

public string getprotocol()//获取url的协议名

public string gethost()//获取url 的主机名

public int getport()//获取url的端口号

public string getpath()//获取url的文件路径

public string getfile()//获取url的文件名

public string getref()//获取url在文件中的相对位置

public string getquery()//获取url的查询名

2.2 利用url访问网上资源

一个url对象对应一个网址,,生成url对象后,就可以调用url对象的openstream()方法读取网址中的信息.openstream()方法的原型如下:

public final inputsream openstream()

调用openstream()方法获取的是一个inputsream输入流对象,通过read()方法只能从这个输入流中逐字节读取数据,也就是从url网址中逐字节读取信息,为了能方便地从url读取信息,通常将原始的inputsream输入流转变为其他类型的输入流,如bufferedreader等,比如读出网址www.sina.com.cn的主页内容.

package com.fenley.test;

import java.net.*;

import java.io.*;

public class web {

/**

* @param args

*/

public static void main(string[] args) {

url url=null;

inputstream is=null;

try{

url=new url("http://www.sina.com.cn");

is=url.openstream();

bufferedreader br=new bufferedreader(new inputstreamreader(is));

string line;

while((line=br.readline())!=null)

system.out.println(line);

}catch(exception ex){

ex.printstacktrace();

}finally{

try {

if (is != null)

is.close();

} catch (exception e) {

e.printstacktrace();

}

}

}

}

从以上实现网络资源的存取程序代码来看,使用java.net中的url类可以轻松实现网络资源的存取.只是要注意:url类的构造方法都抛出malformedurlexception异常,用于处理创造url对象可能产生的异常.

3. 结束语

上面实现的网络资源的存取只是简单地使用java.net中的url类实现的过程,但却很实用,对于开发java在内置的网络能力方面将具有一定的指导的意义.


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值