认识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");
}
}
}
}
分享到:
相关推荐
提供的`Spring MVC中如何传递对象参数 - @ 小浩 - 博客园.url`链接可能指向一篇详细的博客文章,介绍了更多关于使用`@ModelAttribute`和对象参数的实践技巧和注意事项。 总结来说,通过Spring MVC的`@...
在Java编程语言中,对象和类是核心概念,它们...在实际学习过程中,这些资源可以帮助你更深入地理解和掌握Java的对象和类概念,以及面向对象编程的其他方面。通过实践和参考这些材料,你的Java编程技能将得到显著提升。
本教程将基于提供的"java连接sql server数据库例子"来深入探讨这一主题。 首先,Java通过JDBC(Java Database Connectivity)API与SQL Server建立连接。JDBC是Java标准的一部分,它提供了一组接口和类,允许Java...
这个“javaurl.rar_url”压缩包包含的代码示例可能涉及了如何从URL下载文件并将其保存到本地系统。让我们深入探讨这个主题。 首先,Java中的`java.net.URL`类是用来表示一个网络上的特定资源,它包含了协议、主机名...
Java网络编程是开发...这个"java网络编程使用的简单例子"可能包含了以上提到的一些概念,通过实际的代码示例,可以帮助我们更好地理解和应用这些知识。学习和实践这些内容,将有助于开发高效、可靠的网络应用程序。
在Java编程中,连接MySQL数据库是一项基础且重要的任务,它使得我们能够从应用程序中存取、更新和管理数据库中的数据。下面将详细讲解如何使用Java连接...通过阅读和运行这个项目,你将更深入地理解Java与MySQL的交互。
"关于Java常用的100个例子"是一个集成了多种Java编程技术的实例集合,旨在帮助初学者和有经验的开发者更好地理解和掌握Java的核心概念。下面,我们将详细探讨这些例子可能涵盖的一些关键知识点。 1. **基础语法**:...
"Java编程百例初学例子"提供了丰富的实例,旨在帮助新手逐步理解并熟悉Java编程的基本概念、语法和常用技术。下面我们将深入探讨这些知识点。 1. **Java基础语法** - 变量声明与赋值:了解如何声明不同类型的变量...
在Java中,可以通过多种方式实现HTTP请求,例如使用`java.net.URL`和`java.net.HttpURLConnection`类,或者使用Apache HttpClient库。这个项目源代码可能包含了使用这些方法之一的例子,展示如何发送GET、POST以及...
在"Java Web开发SpringMVC简单例子"中,我们可以学习到以下核心知识点: 1. **SpringMVC框架概述**:SpringMVC通过解耦业务逻辑、控制流和视图来简化开发。它提供了DispatcherServlet作为入口点,负责接收请求并...
我们将深入理解jQuery对象的特性,以及在Java中如何映射和解析这些数据。 首先,jQuery对象主要是JavaScript对象,它封装了DOM元素集合,提供了方便的API来操作DOM和处理事件。当前端通过jQuery发起一个AJAX请求向...
"JAVA应用例子"这个主题涵盖了50个不同的代码示例,每个都有注释来帮助理解其工作原理。这些例子是学习和提升Java编程技能的宝贵资源。 1. **基础概念** - **变量**:了解如何声明和使用不同类型的变量,如整型...
【JAVA例子100】这个资源对于初学者来说是一份宝贵的学习材料,它包含了100个不同的JAVA编程示例,旨在帮助新手更好地理解和掌握JAVA语言的基础与进阶概念。以下将详细介绍这些知识点: 1. **JAVA基础语法**:这...
这段代码首先创建了一个URL对象,然后打开与该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....
本篇文章将深入探讨JSON在Java中的应用,并通过一个完整的例子来展示其用法。 首先,我们需要理解JSON的基本结构。JSON数据以键值对的形式存在,类似于JavaScript的对象,但不包含函数。主要的结构有两种:对象...
Java Web是一种基于Java技术构建Web应用程序的框架和标准,它结合了Java服务器页面(JSP)、Servlet、JavaServer Faces(JSF)...学习和理解这些例子有助于开发者深入理解Java Web开发,并能够构建自己的Web应用程序。
### Java调用HTTP REST接口详解 #### 一、引言 在现代软件开发中,RESTful API已经成为一种非常流行的架构风格。它不仅简洁易用,而且支持多种数据格式...希望这篇文章能够帮助开发者更好地理解和运用RESTful API。
总之,`jspoon`作为一款Java库,以其简洁的API和CSS选择器的强大功能,使得解析HTML成为一种高效且易于理解的操作,极大地简化了Java开发者处理HTML文档的工作。无论是进行数据抓取、网页解析还是自动化测试,`...
在Java编程中,判断两个网址的主机名是否相同是一个常见的任务,这通常涉及到网络编程和URL对象的使用。下面我们将详细探讨如何实现这个功能,并深入理解相关知识点。 首先,URL(Uniform Resource Locator)是统一...