详解Java编程中统一资源定位符URL的相关使用

 更新时间:2015年10月10日 15:12:05   投稿:goldensun  
这篇文章主要介绍了Java编程中统一资源定位符URL的相关使用,是Java网络编程中的基础知识,需要的朋友可以参考下

统一资源定位符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():设置网络连接。
信息的发送和接收

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

参见下面例子程序中的方法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异常*/
  }
}

相关文章

  • java开发SpringBoot参数校验过程示例教程

    java开发SpringBoot参数校验过程示例教程

    这篇文章主要为大家介绍了SpringBoot如何进行参数校验的过程示例详解教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • Spring实战之方法级别缓存用法示例

    Spring实战之方法级别缓存用法示例

    这篇文章主要介绍了Spring实战之方法级别缓存用法,结合实例形式分析了spring方法级别缓存配置、属性文件、领域模型及相关使用技巧,需要的朋友可以参考下
    2020-01-01
  • springboot 增加过滤器方法操作示例

    springboot 增加过滤器方法操作示例

    这篇文章主要介绍了springboot 增加过滤器方法操作,结合实例形式分析了springboot过滤器配置、加载等相关操作技巧,需要的朋友可以参考下
    2019-12-12
  • springboot+vue实现七牛云头像的上传

    springboot+vue实现七牛云头像的上传

    本文将介绍如何在Spring Boot项目中利用七牛云进行图片上传并将图片存储在云存储中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • Java使用excel工具类导出对象功能示例

    Java使用excel工具类导出对象功能示例

    这篇文章主要介绍了Java使用excel工具类导出对象功能,结合实例形式分析了java创建及导出Excel数据的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • sentinel整合ribbon与fallback流程分步讲解

    sentinel整合ribbon与fallback流程分步讲解

    这篇文章主要介绍了sentinel整合ribbon与fallback分步流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 超详细解释Java反射

    超详细解释Java反射

    本文非常详细的讲解了java反射具体的内容以及使用,java反射在现今的使用中很频繁,希望此文可以帮大家解答疑惑,可以帮助大家理解
    2021-11-11
  • JAVA实现汉字转拼音功能代码实例

    JAVA实现汉字转拼音功能代码实例

    这篇文章主要介绍了JAVA实现汉字转拼音功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Failed to execute goal org...的解决办法

    Failed to execute goal org...的解决办法

    这篇文章主要介绍了Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1的解决办法的相关资料,需要的朋友可以参考下
    2017-06-06

最新评论