`
xo_tobacoo
  • 浏览: 391888 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Java获取URL对应的资源

    博客分类:
  • java
阅读更多
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 中定义的编码机制不同。
(以上介绍来自Java API 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/p_w_upload/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类型
 
类型很多,通过下面这个工具可以测试,这个类来自[url]http://www.java2s.com/Tutorial/Java/0320__Network/ProtocolTester.htm[/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\" );
                        }
                }
        }
}
 
另外,还可以通过协议处理器自定义协议。
分享到:
评论

相关推荐

    java 版Url转换工具,可得到真实的URL

    Java URL转换工具是一种用于解析和处理URL的程序,它能够帮助开发者获取URL背后的真实地址,尤其是在面对重定向、参数编码等情况时。在Web开发中,URL(Uniform Resource Locator)是互联网资源的统一地址,它包含了...

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

    2. **获取URL内容**:使用Java的`java.net.URL`和`java.net.URLConnection`类来打开和读取URL的内容。确保设置`URLConnection`的`setUseCaches(false)`和`setDoInput(true)`,以便获取最新的网页内容。 3. **处理...

    java禁止直接url访问图片

    标题“Java禁止直接URL访问图片”涉及到的是网络资源保护和权限控制的问题,主要知识点包括: 1. **HTTP请求与响应**: 当用户通过浏览器或其他客户端工具输入一个URL来访问图片时,实际上是发送了一个HTTP GET...

    java 使用URL访问网页

    这段代码首先创建了一个`URL`对象,然后调用`openConnection()`方法打开与该URL对应的连接。这个连接可以是HTTP、HTTPS等各种协议的。接着,我们通过`getInputStream()`获取网页的输入流,并使用`BufferedReader`...

    java多线程URL方式下载单个大文件

    首先,我们需要了解Java中的`java.net.URL`类,它代表一个统一资源定位符,是访问互联网资源的入口。通过`URL`对象,我们可以获取到网络资源,进行读取或写入操作。在下载大文件时,我们会用到`URL.openStream()`...

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

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

    Java下载器 用 Java 编写的URL下载器 workspace

    通过调用URL对象的`openConnection()`方法,我们可以获取到与URL对应的连接。这个连接可以用来设置请求属性,如HTTP头字段,以及建立实际的数据传输。 3. **输入/输出流**:下载过程本质上是通过网络从服务器读取...

    java swing url下载器

    1. **获取URL内容**:使用java.net.URL和java.net.URLConnection类来建立与指定URL的连接,并获取输入流。 2. **读取输入流**:通过BufferedReader或InputStreamReader从URL的输入流中读取数据。 3. **写入本地文件*...

    java上传图片至服务器并且返回下载URL

    在Java开发中,将图片上传到服务器并返回可下载的URL是常见的功能需求,尤其在Web应用中。这里我们将详细探讨实现这一功能的关键步骤和技术点。 首先,客户端(通常是前端应用)需要通过HTTP请求将图片文件发送到...

    Java语言后台实现调用url路径并传参

    在Java编程中,后台调用URL路径并传递参数是一项常见的任务,这通常涉及到网络请求的实现。Java提供了多种库来处理这种需求,如HttpURLConnection、Apache HttpClient等。在这个场景下,我们将重点讨论使用Apache ...

    java获取省市县数据

    这篇博客文章“java获取省市县数据”可能讲述了如何利用Java语言来获取并处理中国各级行政区域的数据,如省、市、县。这在开发需要地域信息的应用程序,如物流系统、地图服务或者数据分析时非常有用。下面我们将深入...

    关于URI和URN,URL和java中对应的类.pdf

    URL 是 URI 的一个子集,它提供了资源的具体位置,可以用来获取资源。URL 的结构通常包含协议、主机地址和资源路径。 URN 则与 URL 不同,它提供了一个独立于位置的资源名称,旨在为资源提供一个持久不变的标识,...

    java 静态代码块通过类加载器获取资源文件例子

    这两个方法可以从类路径中查找指定的资源文件,并返回一个URL对象或输入流,便于我们进一步处理。例如,获取名为"config.properties"的属性文件,我们可以这样编写代码: ```java InputStream inputStream = ...

    关于URI和URN,URL和java中对应的类.docx

    当需要从网络上获取资源时,应该使用URL类;如果只是需要标识一个资源,不涉及实际的访问,那么URI类更为合适。例如,在处理XML文档时,可能需要使用URI来标识命名空间,而不会涉及到实际的数据传输。 总的来说,...

    java 判断两个网址的主机名是否一样

    在这个例子中,我们创建了两个URL对象,分别对应"www.example.com/path1"和"www.example.com/path2"的资源。然后通过调用`URL`对象的`getHost()`方法获取主机名,并使用`equals()`方法比较它们是否相等。 除了基本...

    Java截取url参数的方法

    在Java编程中,处理URL(统一资源定位符)参数是一项常见的任务,特别是在处理HTTP请求时。本文将详细讲解如何在Java中截取和解析URL参数。 首先,我们要明白URL的基本结构,它通常由协议、主机名、路径和查询字符...

    在Java程序中获取当前运行程序的路径

    这两个方法都是在类路径中查找资源,返回一个URL对象,从中可以获取路径信息。例如,如果我们有一个名为`MyClass.class`的类,我们可以这样获取其路径: ```java MyClass.class.getResource("/MyClass.class")....

    Java工程中资源文件的用法

    ### Java工程中资源文件的用法详解 #### 概述 资源文件,通常指的是`.properties`文件,这类文件采用键值对的形式存储数据,广泛应用于Java项目中存储配置信息、国际化字符串等。通过使用`java.util.Properties`类...

    URL的又有效性判断

    此段代码首先尝试使用指定的URL字符串创建一个`URL`对象,然后调用`openStream()`方法打开一个到该URL所引用资源的连接,并获取一个输入流。如果在这个过程中出现任何异常,则捕获这些异常并打印出错误信息,同时将`...

    天气预报数据获取java代码(风和天气、高德地图)

    你需要读取这个Excel文件,使用Java的Apache POI库或者JExcelApi来解析,获取到对应地区的编码,然后用这些编码作为查询参数。 4. **高德地图API集成** 高德地图的天气API可能需要用户的位置信息,因此可能需要...

Global site tag (gtag.js) - Google Analytics