统一资源定位符URL(Uniform Resource Locator)是www客户机访问Internet时用来标识资源的名字和地址。超文本链路由统一资源定位符URL维持。URL的格式是:

<METHOD>://<HOSTNAME:PORT>/<PATH>/<FILE>

其中:Method是传输协议:HOSTNAME是文档和服务器所在的Internet主机名(域名系统中DNS中的点地址);PORT是服务端口号(可省略);PATH是路径名,FILE是文件名。例如:

http://www.weixueyuan.net/(http是协议名,www.weixueyuan.net是主机名)

http://www.weixueyuan.net/view/6079.html (www.weixueyuan.net是主机名,view/6079.html是文件路径和文件名)

URL类:

Java.net包有URL类,一个URL对象可以表示一个网络资源。程序利用URL对象能实现Internet寻址、网络资源的定位连接、在客户机与服务器之间直接访问等。URL类的构造方法是

URL(String s)

其中,s指出网络中的一个资源。

利用URL对象访问网上资源的方法是:先创建URL对象,如以下代码所示:

URL myURL;

try {

myURL = new URL(“http://www.weixueyuan.net:80/”);

}catch(MalformedURLException e){

System.out.println(“有错的URL:”+url+e);

}

因创建URL对象可能会产生MalformedURLException异常。所以,创建URL对象的代码应出现在try…catch语句块中,以便能捕捉网址错误异常。

URLConnection类:

要接收和发关信息还要用URLConnection类,程序获得一个URLConnection对象,相当于完成对指定URL的一个HTTP连接。以下是示意获得URLConnection对象的代码。

URL mu = new URL(“http://www.sun.com/”);//先要创建一个URL对象

URLConnection muC = mu.openConnection();//获得URLConnection对象

上述代码说明,先要创建一个URL对象,然后利用URL对象的openConnection()方法,从系统获得一个URLConnection对象。程序有了URLConnection对象后,就可使用URLConnection类提供的以下方法获得流对象和实现网络连接:

getOutputStream():获得向远程主机发送信息的OutputStream流对象;

getInputStream():获得从远程主机获取信息的InputStream流对象。有了网络连接的输入和输出流,程序就可实现远程通信;

connect():设置网络连接。

实现Runnable接口信息的发送和接收:

发送和接收信息要获得流对象,并由流对象创建输入或输出数据流对象。然后,就可以用流的方法访问网上资源。

参见【例 13-2】程序中的方法readByURL(),该方法说明已知网址读取网页内容的过程。方法利用网址参数创建一个URL对象url,接着利用对象url的openConnect()方法,获得URLConnection对象tc,用对象tc的connect()方法建立网络连接,接着获得网络连接的InputStreamReader类对象in,将对象in,转化成为BufferedRead对象dis,改为缓冲式输入。最后,用对象dis的readLine()方法完成读取网络文本数据。

如同本地数据流一样,网上资源使用结束后,数据流也应及时关闭。例如,代码

dis.close();

关闭先前代码建立的流dis。

例 以数据流方法读取网页内容的应用程序:

程序运行时,网址从文本框中读取。

import java.net.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.javax.swing.*;

public class Example10_2{

public static void main(String args[]){

new downNetFile();

}

}

class DownNetFile extends JFrame implements ActionListener{

JTextFileld infield = new JTextField(30);

JTextarea showArea = new JTextArea();

JButton b = new JButton(“download”);JPanel p = new JPanel();

DownNetFile(){

super(“read network text file application”);

Container con = this.getContentPane();

p.add(infield);p.add(b);

JScrollPane jsp = new JScrollPane(showArea);

b.addActionListener(this);

con.add(p,”North”);con.add(jsp,”Center”);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(500,400);setVisible(true);

}

public void actionPerformed(ActionEvent e){

readByURL(infield.getText());

}

public void readByURL(String urlName){

try{

URL url = new URL(urlName);//由网址创建URL对象

URLConnection tc = url.openConnectin();//获得URLConnection对象

tc.connect();//设置网络连接

InptStreamReader in = new InputStreamReader(tc.getInputStream());

BufferedReader dis = new BufferedReader(in);//采用缓冲式输入

String inline;

while((inline = dis.readLine())!=null){

showArea.append(inline +”\n”);

}

dis.close();//网上资源使用结束后,数据流及时关闭

}catch(MalformedURLException e){

e.printStackTrace();

}

catch(IOException e){e.printStacktrace();}

/*访问网上资源可能产生MalformedURLException和IOException异常*/

}

}

161125、Java网络编程之统一资源定位符URL的更多相关文章

  1. Java知多少(104)网络编程之统一资源定位符URL

    统一资源定位符URL(Uniform Resource Locator)是www客户机访问Internet时用来标识资源的名字和地址.超文本链路由统一资源定位符URL维持.URL的格式是: <M ...

  2. Python的Web编程[0] -> Web客户端[0] -> 统一资源定位符 URL

    统一资源定位符 / URL 目录 URL 构成 URL 解析 URL 处理 1 URL构成 统一资源定位符(Uniform Resource Locator) 是对可以从互联网上得到的资源的位置和访问 ...

  3. 统一资源定位符URL

    Uniform Resource Locate--URL 用途:通过URL访问web网页:通过URL使用其它的Internet应用程序,例如FTP,Telnet(远程登录服务):对应IE浏览器窗口中的 ...

  4. 统一资源定位符URL类

    package j2se.core.net.base; import java.io.BufferedReader;import java.io.IOException;import java.io. ...

  5. Java 网络编程(三) 创建和使用URL访问网络上的资源

    链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951877.html 创建和使用URL访问网络上的资源 URL(Uniform Reso ...

  6. java网络编程Socket通信详解

    Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...

  7. Java网络编程和NIO详解开篇:Java网络编程基础

    Java网络编程和NIO详解开篇:Java网络编程基础 计算机网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为 ...

  8. Java网络编程以及简单的聊天程序

    网络编程技术是互联网技术中的主流编程技术之一,懂的一些基本的操作是非常必要的.这章主要讲解网络编程,UDP和Socket编程,以及使用Socket做一个简单的聊天软件. 全部代码下载:链接 1.网络编 ...

  9. Java网络编程探究|乐字节

    大家好,我是乐字节小乐,上次给大家讲述了Java中的IO流之输出流|乐字节,本文将会给大家讲述网络编程. 主要内容如下: 网络 网络分层 IP位置 端口port 网络编程 一. 网络 1.概念 网络即 ...

随机推荐

  1. SQL server 2012

    MICROSOFT SQL SERVER 2012 企业核心版激活码序列号: FH666-Y346V-7XFQ3-V69JM-RHW28MICROSOFT SQL SERVER 2012 商业智能版激 ...

  2. Visual Studio 2013发布网站

  3. javascript实例学习之三——类新浪微博的登录框

    该登录框和百度的搜索框类似,可以实现如下效果: 1.文字输入时自动弹出提示层 2,提示层根据输入文字进行自动过滤 3,提示层可以使用上下按键进行选择 4,提示层可以点击或者回车来确认输入 微博登录框h ...

  4. Windows Security 学习笔记

    对于Windows 在 Security 方面的学习. 纯兴趣. UNIX 的另外开一条路线学习. 话说今天查gpedit.msc的资料的时候发现 M$ 官网上怎么连个文档都没有. 后来才点了 gpe ...

  5. Android中的Handler机制

    直接在UI线程中开启子线程来更新TextView显示的内容,运行程序我们会发现,如下错 误:android.view.ViewRoot$CalledFromWrongThreadException: ...

  6. PAT 解题报告 1049. Counting Ones (30)

    1049. Counting Ones (30) The task is simple: given any positive integer N, you are supposed to count ...

  7. 刷新本地的DNS缓存

    用“WIN +R”快捷键打开运行窗口,输入“cmd”命令,进行命令行窗口.

  8. Lintcode: Rehashing

    The size of the hash table is not determinate at the very beginning. If the total size of keys is to ...

  9. EJS 是什么 ,怎么用,以及优点

    一.什么是EJS EJS是一个JavaScript模板库,用来从JSON数据中生成HTML字符串. 二.为什么要使用EJS 与最初的JavaScript相比较,一些不太了解你的代码的人可以更容易地通过 ...

  10. [摘录]quarts:Quartz Quick Start Guide

    (Primarily authored by Dafydd James) Welcome to the QuickStart guide for Quartz. As you read this gu ...