理论教育 Java程序设计-URL类

Java程序设计-URL类

时间:2023-10-18 理论教育 版权反馈
【摘要】:表13.3URL类的构造方法上述构造方法中,如果给定的参数spec为null,或没有指定协议,或使用了未知协议,那么将抛出MalformedURLException异常。表13.4URL类的常用方法表13.4中列举了URL类常用方法,下面通过一个案例来演示上述常用方法的使用。在cn.pzhu.api.example包下面创建一个名为Example02的类。图13.6程序运行结果需要说明的是,URL的锚点“ref”需要使用“#”拼接在文件路径之后,表示该资源中的某一段信息。

Java程序设计-URL类

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

URL由协议(或称为服务方式)、资源所在主机IP地址(有时也包括端口号)、资源的具体地址(如目录和文件名等)三部分组成,具体书写的语法规则如下:

scheme://host.domain:port/path

其中,scheme表示因特网服务的类型,常见的协议有http、https、ftp、file,最常见的类型是http。host表示域主机(http 的默认主机是www),domain表示因特网域名(如pzhu.edu.cn),这两部分可以直接由主机的IP地址代替。port表示主机上的端口号(http 协议默认端口是 80)。path表示资源在该服务器上的具体路径,如示例中的“index.jsp”。

例如:http://www.pzhu.edu.cn:80/index.jsp

另外,协议和主机之间用“://”符号隔开;若存在端口号,则用“:”将端口号写在主机之后;主机和资源地址之间用“/”符号隔开。在使用过程中,协议和主机地址是不可缺少的,资源地址省略(这时将访问该主机上默认的资源)。

在Java的 java.net 包提供了一个用于处理URL的类URL.java,使用该类的方法可以获得 URL 的相关信息,例如URL的协议名和主机名等。

URL类的实例构造方法如表13.3所示。

表13.3 URL类的构造方法

上述构造方法中,如果给定的参数spec为null,或没有指定协议,或使用了未知协议,那么将抛出MalformedURLException异常。

URL类的常用方法如表13.4所示。

表13.4 URL类的常用方法

表13.4中列举了URL类常用方法,下面通过一个案例来演示上述常用方法的使用。

【例13.2】在cn.pzhu.api.example包下面创建一个名为Example02的类。根据指定路径来构造URL对象,并通过URL类的常用方法将当前URL对象的相关属性信息输出到控制台。(www.daowen.com)

程序运行结果如图13.6所示。

图13.6 程序运行结果

需要说明的是,URL的锚点“ref”需要使用“#”拼接在文件路径之后,表示该资源中的某一段信息。另外,url2没有设置端口号,因此使用getPort()方法得到的是-1,但使用getDefaultPort ()方法能够得到该URL默认端口号,即HTTP协议的默认端口80。

除此之外,URL类还提供了一些连接并读取URL的方法,如表13.5所示。

表13.5 URL类的其他方法

因此,在得到一个URL对象之后,可以通过调用URL的openStream()方法来读取指定的文件资源。在与指定的URL建立连接后,可以返回一个InputStream对象用于从这一连接中读取数据,下面通过一个案例来演示上述常用方法的使用。

【例13.3】在cn.pzhu.api.example包下面创建一个名为Example03的类。根据指定路径来构造URL对象,从当前URL对象中读取相关数据,并将结果输出到控制台。

程序运行结果是显示指定网址资源对应文件的HTML源码,如图13.7所示。

图13.7 程序运行结果

需要说明的是,输出结果可能会出现乱码,因此可以使用String类提供的相关方法进行重新编码,如上述代码中对输出信息"info"进行了编码:new String(info.getBytes(),"utf-8")。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈