科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Java2 参考大全:第18章 网络 (4)

Java2 参考大全:第18章 网络 (4)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Java2 参考大全:第18章 网络 (4)

作者:Herbert Schildt 著 张玉清 吴溥峰等 译 来源:清华大学出版社 2007年10月30日

关键字: 网络 java

  • 评论
  • 分享微博
  • 分享邮件

18.5 URL
最后的例子有一点含糊,因为现代Internet不是围绕老的协议,如whois、finger及FTP的,而是关于WWW(万维网)的。Web是一个由Web浏览器统一的高级协议和文件格式的松散集合。Web中最重要的一个方面是Tim Berners-Lee设计了一个定位所有网络资源的弹性方法。一旦你能够可靠的命名一个事物,它将成为一个功能强大的范型,统一资源定位(URL)就做这些。URL提供了一个相当容易理解的形式来惟一确定或对Internet上的信息进行编址。URL是无所不在的;每一个浏览器用它们来识别Web上的信息。实际上,Web是用URL 和HTML为所有资源编址的同样陈旧的Internet 。在Java的网络类库中,URL 类为用URL在Internet上获取信息提供了一个简单的、简洁的用户编程接口(API)。
18.5.1 格式化(Format)
http://www.osborne.com/ 和 http://www.osborne.com:80/index.htm是URL 的两个例子。一个URL规范以四个元素为基础。第一个是所用到的协议,用冒号(:)来将它与定位符的其他部分相隔离。尽管现在所有的事情都通过HTTP(实际上,如果你在URL规范中不用“http://”,大多数浏览器都能正确执行)完成,但它不是惟一的协议,常见的协议有http、ftp、gopher和文件。第二个元素是主机名或所用主机的IP地址,这由左边的双斜线(//)和右边的单斜线(/)或可选冒号(:)限制。第三个成分,端口号,是可选的参数,由主机名左边的冒号(:)和右边的斜线(/)限制(它的默认端口为80,它是预定义的HTTP 端口;所以“:80”是多余的)。第四部分是实际的文件路径。多数HTTP服务器将给URL附加一个与目录资源相关的index.html或 index.htm 文件。所以,http://www.osborne.com/ 与http://www.osborne.com/index.htm 是相同的。Java的URL类有多个构造函数,每个都能引发一个MalformedURLException异常。一个常见形式是用与你在浏览器中看到的相同的字符串指定URL:
URL(String urlSpecifier)
下面的两个构造函数形式允许你把URL分裂成它的组成部分:
URL(String protocolName, String hostName, int port, String path)
URL(String protocolName, String hostName, String path)
另一个经常用到的构造函数允许你用一个已经存在的URL作为引用上下文,然后从该上下文中创建一个新的URL。尽管这听起来有些别扭,它实际上是很简单而有用的。
URL(URL urlObj, String urlSpecifier)
下面的例子中,我们为Osborne的下载页面创建一个URL,然后检查它的属性:
// Demonstrate URL.
import java.net.*;
class URLDemo {
public static void main(String args[]) throws MalformedURLException {
URL hp = new URL("http://www.osborne.com/download");
System.out.println("Protocol: " + hp.getProtocol());
System.out.println("Port: " + hp.getPort());
System.out.println("Host: " + hp.getHost());
System.out.println("File: " + hp.getFile());
System.out.println("Ext:" + hp.toExternalForm());
}
}
运行该程序,你将获得下面输出:
Protocol: http
Port: -1
Host: www.osborne.com
File: /download
Ext:http://www.osborne.com/download
注意端口是-1,这意味着该端口没有被明确设置。现在我们已经创建了一个URL对象,我们希望找回与之相连的数据。为获得URL的实际比特或内容信息,用它的openConnection( )方法从它创建一个URLConnection对象,如下:
url.openConnection()
openConnection( ) 有下面的常用形式:
URLConnection openConnection( )
与调用URL对象相关,它返回一个URLConnection对象。它可能引发IOException异常。
查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章