java什么是类_Java 什么是URL?及URL类和URLConnection类

在 Java 的 API 中的 java.net 包中包含一个 URL 类和一个 URLConnection 类。下面介绍这两个类的相关知识。

URL 概念

URL 是统一资源定位符(Uniform Resource Locator)的简称,它表示 Internet 上某一资源的地址。通过 URL 用户可以访问各种网络资源,比如常见的 WWW 以及 FTP 站点。浏览器可以通过解析给定的 URL 在网络上查找相应的文件或其他资源。

URL 的语法格式如下所示。

protocol://resourceName

协议名(protocol)指明获取资源所使用的传输协议,如 HTTP、FTP 和 file 等,资源名(resourceName)则应该是资源的完整地址,包括主机名、端口号、文件名或文件内部的一个引用。下面是一些简单的 URL 示例。

http://www.sun.com/ 协议名://主机名

http://localhost:8080/Test/admin/login.jsp 协议名://机器名:端口号/文件名

URL 类

在 java.net 包中包含专门用来处理 URL 的类 URL,可以获得 URL 的相关信息,例如 URL 的协议名和主机名等。下面分别对它的构造方法和常用方法进行介绍。

URL 的构造方法如表 1 所示。

表1 URL 的构造方法

构造方法

说明

public URL (String spec)

通过一个表示 URL 地址的字符串可以构造一个 URL 对象。

public URL(URL context,String spec)

使用基本地址和相对 URL 构造一个 URL 对象。

public URL(String protocol,String host,String file)

使用指定的协议、主机名和文件名创建一个 URL 对象。

public URL(String protocol,String host,int port,String file)

使用指定的协议、主机名、端口号和文件名创建一个 URL 对象。

URL 的常用方法如表 2 所示。

表2 URL 的常用方法

方法

说明

public String getProtocol()

获取该 URL 的协议名。

public String getHost()

获取该 URL 的主机名。

public int getPort()

获取该 URL 的端口号,如果没有设置端口,返回 -1。

public String getFile()

获取该 URL 的文件名。

public String getRef()

获取该 URL 在文件中的相对位置。

public String getQuery()

获取该 URL 的查询信息。

public String getPath()

获取该 URL 的路径。

public String getAuthority()

获取该 URL 的权限信息。

public String getUserInfo()

获得使用者的信息。

public String getRef()

获得该 URL 的锚点。

URLConnection 类

完成了 URL 的定义,接下来就可以获得 URL 的通信连接。在 java.net 包中,定义了专门的 URLConnection 类来表示与 URL 建立的通信连接,URLConnection 类的对象使用 URL 类的 openConnection() 方法获得。

URLConnection 类的主要方法如表 3 所示。

表3 URLConnection 类的主要方法

方法

说明

void addRequestProperty(String key,String value)

添加由键值对指定的一般请求属性。key 指的是用于识别请求的关键字

(例如 accept),value 指的是与该键关联的值。

void connect()

打开到此 URL 所引用的资源的通信链接(如果尚未建立这样的链接)。

Object getConnection()

检索此 URL 链接的内容。

InputStream getInputStream()

返回从此打开的链接读取的输入流。

OutputStream getOutputStream()

返回写入到此链接的输出流。

URL getURL()

返回此 URLConnection 的 URL 字段的值。

例 1

使用 URL 和 URLConnection 类获取与百度首页的链接并将其页面信息输出到控制台,主要步骤如下所示。

(1) 创建一个类,编写 main() 方法,在该方法中创建一个 URL 对象,然后传入参数“http://www.baidu.com/”,输出 URL 的相关信息,代码如下所示。

package ch16;

import java.io.IOException;

import java.io.InputStream;

import java.net.URL;

import java.net.URLConnection;

public class URLDemo

{

public static void main(String[] args)

{

try

{

URL url=new URL("http://www.baidu.com/");

System.out.println("协议:" + url.getProtocol());

System.out.println("主机:" + url.getHost());

System.out.println("端口:" + url.getPort());

InputStream in;

}

catch(IOException e)

{

//TODO 自动生成的 catch 块

e.printStackTrace();

}

}

}

(2) 在 main() 方法的 try 模块中继续添加代码,获得 URLConnection 对象,通过输入流读取页面源代码并将信息输出到控制台,代码如下所示。

URLConnection uc=url.openConnection();

in=uc.getInputStream();

byte[] b=new byte[1024];

int len;

while((len=in.read(b))!=-1)

{

System.out.println(new String(b,0,len));

}

in.close();

(3) 运行程序,执行结果如下所示。

协议:http

主机:www.baidu.com

端口:-1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值