`

Java URL对象的理解和例子

阅读更多
认识IP、认识URL是进行网络编程的第一步。java.net.URL提供了丰富的URL构建方式,并可以通过java.net.URL来获取资源。

一、认识URL
类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。

简单的可以把URL理解为包含:协议、主机名、端口、路径、查询字符串和参数等对象。每一段可以独立设置。

应用程序也可以指定一个“相对 URL”,它只包含到达相对于另一个 URL 的资源的足够信息。HTML 页面中经常使用相对 URL.

相对 URL 不需要指定 URL 的所有组成部分。如果缺少协议、主机名称或端口号,这些值将从完整指定的 URL 中继承。

由于 URL 不懂 URL 转义,所以它不会识别同一 URL 的对等编码和解码形式。

注意,URI 类在某些特定情况下对其组成字段执行转义。建议使用 URI 管理 URL 的编码和解码,并使用 toURI() 和 URI.toURL() 实现这两个类之间的转换。

也可以使用 URLEncoder 和 URLDecoder 类,但是只适用于 HTML 形式的编码,它与 RFC2396 中定义的编码机制不同。

二、获取URL指定的资源
下面给个例子,说明如何获取到指定的资源。
import java.io.*;    
import java.net.URL;    
import java.net.URLConnection;    
  
public class TestURL {    
        public static void main(String[] args) throws IOException {    
                test4();    
                test3();    
                test2();    
                test();    
        }    
  
        /**   
         * 获取URL指定的资源。   
         *   
         * @throws IOException   
         */    
        public static void test4() throws IOException {    
                URL url = new URL("http://lavasoft.blog.51cto.com/attachment/200811/200811271227767778082.jpg");    
                //获得此 URL 的内容。    
                Object obj = url.getContent();    
                System.out.println(obj.getClass().getName());    
        }    
  
        /**   
         * 获取URL指定的资源   
         *   
         * @throws IOException   
         */    
        public static void test3() throws IOException {    
                URL url = new URL("http://www.hrtsea.com/down/soft/45.htm");    
                //返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。    
                URLConnection uc = url.openConnection();    
                //打开的连接读取的输入流。    
                InputStream in = uc.getInputStream();    
                int c;    
                while ((c = in.read()) != -1)    
                        System.out.print(c);    
                in.close();    
        }    
  
        /**   
         * 读取URL指定的网页内容   
         *   
         * @throws IOException   
         */    
        public static void test2() throws IOException {    
                URL url = new URL("http://www.hrtsea.com/down/soft/45.htm");    
                //打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。    
                Reader reader = new InputStreamReader(new BufferedInputStream(url.openStream()));    
                int c;    
                while ((c = reader.read()) != -1) {    
                        System.out.print((char) c);    
                }    
                reader.close();    
        }    
  
        /**   
         * 获取URL的输入流,并输出   
         *   
         * @throws IOException   
         */    
        public static void test() throws IOException {    
                URL url = new URL("http://lavasoft.blog.51cto.com/62575/120430");    
                //打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。    
                InputStream in = url.openStream();    
                int c;    
                while ((c = in.read()) != -1)    
                        System.out.print(c);    
                in.close();    
        }    
}


mport java.net.URL;    
  
public class MainClass {    
  
        public static void main(String[] args) {    
  
                String host = "www.java2s.com";    
                String file = "/index.html";    
  
                String[] schemes = {"http", "https", "ftp", "mailto", "telnet", "file", "ldap", "gopher",    
                                "jdbc", "rmi", "jndi", "jar", "doc", "netdoc", "nfs", "verbatim", "finger", "daytime",    
                                "systemresource"};    
  
                for (int i = 0; i < schemes.length; i++) {    
                        try {    
                                URL u = new URL(schemes, host, file);    
                                System.out.println(schemes + " is supported\r\n");    
                        } catch (Exception ex) {    
                                System.out.println(schemes + " is not supported\r\n");    
                        }    
                }    
        }    
}
分享到:
评论

相关推荐

    java spring mvc项目,通过URL地址传递对象参数给action.zip

    提供的`Spring MVC中如何传递对象参数 - @ 小浩 - 博客园.url`链接可能指向一篇详细的博客文章,介绍了更多关于使用`@ModelAttribute`和对象参数的实践技巧和注意事项。 总结来说,通过Spring MVC的`@...

    Java 对象和类的学习例子

    在Java编程语言中,对象和类是核心概念,它们...在实际学习过程中,这些资源可以帮助你更深入地理解和掌握Java的对象和类概念,以及面向对象编程的其他方面。通过实践和参考这些材料,你的Java编程技能将得到显著提升。

    java连接sql server数据库例子

    本教程将基于提供的"java连接sql server数据库例子"来深入探讨这一主题。 首先,Java通过JDBC(Java Database Connectivity)API与SQL Server建立连接。JDBC是Java标准的一部分,它提供了一组接口和类,允许Java...

    javaurl.rar_url

    这个“javaurl.rar_url”压缩包包含的代码示例可能涉及了如何从URL下载文件并将其保存到本地系统。让我们深入探讨这个主题。 首先,Java中的`java.net.URL`类是用来表示一个网络上的特定资源,它包含了协议、主机名...

    andoird java.net.URL类使用

    使用`URL`类,你可以创建一个URL对象并访问这些组件: ```java URL url = new URL("http://www.example.com:80/path?query=param#fragment"); String protocol = url.getProtocol(); // "http" String host = url....

    java网络编程使用的简单例子

    Java网络编程是开发...这个"java网络编程使用的简单例子"可能包含了以上提到的一些概念,通过实际的代码示例,可以帮助我们更好地理解和应用这些知识。学习和实践这些内容,将有助于开发高效、可靠的网络应用程序。

    java 连接 MySQL的小例子

    在Java编程中,连接MySQL数据库是一项基础且重要的任务,它使得我们能够从应用程序中存取、更新和管理数据库中的数据。下面将详细讲解如何使用Java连接...通过阅读和运行这个项目,你将更深入地理解Java与MySQL的交互。

    关于Java常用的100个例子

    "关于Java常用的100个例子"是一个集成了多种Java编程技术的实例集合,旨在帮助初学者和有经验的开发者更好地理解和掌握Java的核心概念。下面,我们将详细探讨这些例子可能涵盖的一些关键知识点。 1. **基础语法**:...

    java编程百例初学例子

    "Java编程百例初学例子"提供了丰富的实例,旨在帮助新手逐步理解并熟悉Java编程的基本概念、语法和常用技术。下面我们将深入探讨这些知识点。 1. **Java基础语法** - 变量声明与赋值:了解如何声明不同类型的变量...

    Java Web开发SpringMVC简单例子

    在"Java Web开发SpringMVC简单例子"中,我们可以学习到以下核心知识点: 1. **SpringMVC框架概述**:SpringMVC通过解耦业务逻辑、控制流和视图来简化开发。它提供了DispatcherServlet作为入口点,负责接收请求并...

    jquery转换java对象

    我们将深入理解jQuery对象的特性,以及在Java中如何映射和解析这些数据。 首先,jQuery对象主要是JavaScript对象,它封装了DOM元素集合,提供了方便的API来操作DOM和处理事件。当前端通过jQuery发起一个AJAX请求向...

    JAVA应用例子

    "JAVA应用例子"这个主题涵盖了50个不同的代码示例,每个都有注释来帮助理解其工作原理。这些例子是学习和提升Java编程技能的宝贵资源。 1. **基础概念** - **变量**:了解如何声明和使用不同类型的变量,如整型...

    JAVA例子100

    【JAVA例子100】这个资源对于初学者来说是一份宝贵的学习材料,它包含了100个不同的JAVA编程示例,旨在帮助新手更好地理解和掌握JAVA语言的基础与进阶概念。以下将详细介绍这些知识点: 1. **JAVA基础语法**:这...

    url.zip_Java URL实现文件下载

    这段代码首先创建了一个URL对象,然后打开与该URL的连接。通过设置超时时间,我们可以避免因网络延迟导致的程序阻塞。接着,我们从连接中获取输入流,并将其写入到本地文件系统中,实现了文件的下载。 **使用...

    java_json最完整例子

    本篇文章将深入探讨JSON在Java中的应用,并通过一个完整的例子来展示其用法。 首先,我们需要理解JSON的基本结构。JSON数据以键值对的形式存在,类似于JavaScript的对象,但不包含函数。主要的结构有两种:对象...

    经典 java web例子

    Java Web是一种基于Java技术构建Web应用程序的框架和标准,它结合了Java服务器页面(JSP)、Servlet、JavaServer Faces(JSF)...学习和理解这些例子有助于开发者深入理解Java Web开发,并能够构建自己的Web应用程序。

    Java 调用Http Rest接口 例子说明

    ### Java调用HTTP REST接口详解 #### 一、引言 在现代软件开发中,RESTful API已经成为一种非常流行的架构风格。它不仅简洁易用,而且支持多种数据格式...希望这篇文章能够帮助开发者更好地理解和运用RESTful API。

    jspoon是一个Java库它基于CSS选择器提供将Java解析为Java对象

    总之,`jspoon`作为一款Java库,以其简洁的API和CSS选择器的强大功能,使得解析HTML成为一种高效且易于理解的操作,极大地简化了Java开发者处理HTML文档的工作。无论是进行数据抓取、网页解析还是自动化测试,`...

    Java端 ajax简单入门例子

    通过open()方法设置请求类型(GET或POST),URL(指向Java Servlet)和是否异步执行。接着,使用send()方法发送请求,参数通常是表单数据。 3. **Java Servlet**:在后端,Servlet接收到Ajax请求后,解析请求参数...

    Java标签库以及用法例子API

    它提供了一系列预定义的标签,用于处理常见任务,如迭代、条件判断、XML处理、国际化、SQL操作等,使得开发者可以避免在JSP页面中直接编写Java脚本,提高代码的可读性和维护性。 JSTL主要由以下几个核心部分组成: ...

Global site tag (gtag.js) - Google Analytics