`

取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 中定义的编码机制不同。

  (以上介绍来自JavaAPI doc)

  二、URL对象的构建

  方式很多,可以看看API文档。

  三、获取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(); 
        } 
} 


  四、Java所支持的URL类型

import 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[i], host, file); 
                                System.out.println(schemes[i] + " is supported\r\n"); 
                        } catch (Exception ex) { 
                                System.out.println(schemes[i] + " is not supported\r\n"); 
                        } 
                } 
        } 
} 


原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/database/40/11335040.shtml

 

分享到:
评论

相关推荐

    取URL本地缓存地址.rar

    "取URL本地缓存地址"这个主题聚焦于如何获取一个URL在本地计算机上的缓存副本路径。理解这一过程有助于我们更高效地利用网络资源,减少不必要的网络请求,提高应用程序性能。 首先,我们需要了解什么是URL(Uniform...

    易语言取URL本地缓存地址

    首先,URL(Uniform Resource Locator)是互联网上资源的唯一标识,当我们访问一个网页时,浏览器会将该URL对应的网页内容下载到本地缓存,以便于用户快速重复访问。易语言提供了一种方法,能够获取到URL在本地的...

    js取url参数.rar

    "js取url参数.rar"这个压缩包文件可能包含一个示例或者教程,教你如何简洁且直观地从URL中提取参数。这里,我们将深入探讨这个话题,了解如何在JavaScript中实现这一功能。 URL(Uniform Resource Locator)是统一...

    asp.net c# Url重写和无扩展名Url重写

    URL重写是一种机制,它允许开发人员将一个URL映射到另一个URL,而不会改变实际请求的资源。在ASP.NET中,这通常通过使用IIS(Internet Information Services)的URL重写模块或者Microsoft的`System.Web.Routing`类库...

    易语言-易语言取网址URL指定参数

    在提供的压缩包文件“取Url参数”中,很可能包含了一个易语言编写的源码示例,用于演示如何实现这一功能。源码可能包括以下几个关键步骤: 1. **读取URL**:首先,程序需要获取到完整的URL字符串,这可能来自用户...

    易语言URL网址编解码

    在互联网编程中,URL(统一资源定位符)是用于标识网络资源的重要工具,而URL编解码则是处理URL过程中不可或缺的部分。本篇将详细讲解易语言实现URL网址编解码的相关知识点。 1. **URL编码**: URL编码是将URL中的...

    URL.rar_url_动态网页下载_网页 取 图片

    本教程将深入探讨如何实现这一目标,基于提供的"URL.rar_url_动态网页下载_网页 取 图片"资源。 首先,我们需要理解动态网页。动态网页与静态网页相反,它们的内容不是固定不变的,而是根据用户交互或者服务器端的...

    Java使用JavaBean封装和连接URL.rar

    在本案例中,"Java使用JavaBean封装和连接URL"涉及到如何利用JavaBean来处理网络请求,尤其是通过URL来获取网络资源。下面将详细阐述这个过程。 首先,JavaBean的创建通常包括以下步骤: 1. 创建一个公共类,此类应...

    Java WEB实现URL重写

    2. **使用URL映射和Servlet**:在Servlet配置中,可以定义多个URL映射,每个映射对应不同的业务逻辑。这样,用户看到的URL就可以与实际处理请求的Servlet映射关系解耦。 ```xml &lt;!-- web.xml配置 --&gt; ...

    java URL转PDF文件(完美支持中文)

    如果你使用的是Maven,可以在pom.xml文件中添加对应的依赖。 2. **获取URL内容**:使用Java的`java.net.URL`和`java.net.URLConnection`类来打开和读取URL的内容。确保设置`URLConnection`的`setUseCaches(false)`...

    网站扒站工具,网站资源下载工具,网站页面扒取

    在描述中提到的"资源目录结构自动创建"功能,是指扒站工具在下载过程中会根据网站原有的URL结构自动生成对应的本地文件夹结构。例如,如果一个图片的URL是`https://example.com/images/image.jpg`,那么在下载后,它...

    JS版取Url参数-易语言

    "JS版取Url参数-易语言"这个标题暗示我们讨论的是如何使用JavaScript解析URL查询字符串并提取其中的参数。易语言是一种面向对象的中文编程语言,但在这里提到的“易语言”可能是对JavaScript简单易学特点的借用。 ...

    挖取图片.zip

    3. **依赖库或框架**:如果使用的任何第三方库,可能会包含对应的库文件或安装指南。 4. **示例输入/输出**:可能有测试用的URL列表或预期的抓取结果,以便用户验证代码的正确性。 5. **README或文档**:提供关于...

    url-shortener-main-源码.rar

    在互联网上,URL(Uniform Resource Locator)是用于定位网络资源的地址,但随着网页数量的爆炸性增长,一些URL变得异常冗长,不便分享和记忆。为了解决这个问题,URL短链服务应运而生。"url-shortener-main-源码....

    全新PHP短网址生成系统,短链接生成系统,URL缩短器系统源码

    在互联网世界中,URL(统一资源定位符)的长度有时可能会变得相当冗长,这不仅在分享时造成不便,也可能影响用户体验。为了解决这个问题,短网址生成系统应运而生。本文将深入探讨“全新PHP短网址生成系统”这个话题...

    在CDHtmlDialog中显示html脚本

    最近两天在弄一个界面显示的事情,虽然要求不高,不过还是想做得好看...至于窗口关闭时,则库自动删除对应的web显示窗口。 shdemo 工程:html显示的测试工程 如有问题,请联系: hyd2001_2008@163.com 2018.7.10

    js获取url参数代码实例分享(JS操作URL)

    1. URL组成部分:URL(统一资源定位符)通常由协议、主机名、路径和查询字符串以及锚点组成。查询字符串位于一个问号(?)之后,而锚点位于一个井号(#)之后。 2. 解析URL参数:通过分析URL字符串,可以将查询字符...

    red:基于重定向的URL缩短器

    2. **短码生成**:为了确保短码的唯一性,可以使用哈希函数(如MD5或SHA-1)对长URL进行哈希运算,然后取部分哈希值作为短码。如果需要生成可读的短码,可以使用Base64编码或其他编码方式,同时可以设定自增ID配合...

    取色条(ColorTip)

    值得一提的是,在ColorTip的压缩包中还包含了绿盟-首页.url文件,这个快捷方式可能指向了开发者社区、资源分享平台或技术支持论坛,用户可以通过这个链接获取软件的更新信息、使用技巧,以及其他绿色软件的推荐。...

    易语言取Escape编码

    例如,URL(统一资源定位符)中不能包含某些特殊字符,如空格、引号等,所以这些字符需要被转换为%xx形式,其中xx是该字符在ASCII表中的16进制值。这个过程就叫做URL编码,它是HTTP协议的一部分,确保了URL的正确...

Global site tag (gtag.js) - Google Analytics