认识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("");
//获得此 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");
}
}
}
}
另外,还可以通过协议处理器自定义协议。
分享到:
相关推荐
网址是网络地址的简称,也叫统一资源定位器URL(Uniform Resource Locator)。 概念:IP地址是指Internet中不同计算机的相互通信必须具有相应的地址标识。 级别 科目名称 科目代码 考试时间 考试方式 一级 计算机...
springboot实战入门,springboot+jpa实现java后台api接口 # 实现功能 - 1 购物车功能 - 2 java后台api接口 - 3 简单的电商订单后台 - 4 javaweb网站 - 5 微信小游戏体验 #### #### 项目中的sql.txt文档中是创建...
Java EE常用框架 WebService 介绍 基于Web的服务。... realm中获取认证的信息,查询出该用户对应的权限,封装到simpleAuthorizationInfo中,PermissionsAuthorizationFilter会根据对应的权限来比对。
其对应的(自动生成的)Java类 伪像 工件可以通过,您可以将其添加到maven存储库中,如下所示: < id>clojars.org < url>http://clojars.org/repo</ url> 注意:客户端的名称空间以前是com.aphyr但自0.4.2版本...
Python入门网络爬虫之精华版 Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下。 首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要...
阅读本章节请先阅读:xhEditor入门基础,若你已经熟悉xhEditor的基本使用,请往下继续。 xhEditor提供两种方式初始化编辑器: 方法1:利用class属性来初始化和传递各种初始化参数,例: class="xheditor {skin:'...
重定向到一个URL 16 org.apache.struts2.dispatcher.ServletRedirectResult 16 redirectAction 16 重定向到一个Action 16 org.apache.struts2.dispatcher.ServletActionRedirectResult 16 plainText 16 显示源文件...
网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...
是识别微信公众号的唯一标识,透过url我们可以通过微信上下文帮助类(WeixinContextHelper)的静态方法获取到微信上下文及访问token,另外,在微信方法中我们也可以通过注入WeixinContext参数来获得微信上下文。...
java百度贴吧源码 easy-window是什么? easy-window 是一个旨在简化桌面开发难度的通用窗体,它可以让你使用当前主流HTML5技术快速地创建Windows桌面应用程序。创作桌面应用,不需要掌握QT,C++,C#,Java那些繁琐的...
基于开源项目bistoury的java应用故障诊断工具预研demo源码.zip 故障诊断介绍 java应用故障诊断工具预研 demo ,基于开源项目bistoury修改,99.999%代码保持一致,原项目明显是为多节点大集群设计,对于小集群来说...
(读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看...
7.6.2 Location对象属性与URL的对应 7.6.3 使用reload()方法重载页面 7.7 Frame对象 7.7.1 框架集文档中对象的结构 7.7.2 控制指定的框架 7.7.3 常见属性和方法汇总 7.7.4 Frameset对象 7.7.5 iframe元素对象 7.8 ...
文章目录前言正文增加缓存页面静态化,前后端分离页面缓存实际操作URL缓存对象缓存具体实现思想具体...在前面学习到了基础的登录功能模块的设计(还在继续完善中)以及Redis封装类的设置对应的是github源码miaosha_2
除了基本开发标签语言及表达式(参见同一下载包中的开发手册)外,轻开平台特别针对移动App最常用的json文本格式开发的对应规则: 文件扩展名须为json(如:one.json)或用JspEasy扩展 文件内容须为闭合的json...
036 HDFS Java API 两种方式介绍及使用URL API详解一 037 使用URL API详解二 038 使用HDFS FileSystem API 详解 039 HDFS文件系统读写流程及HDFS API两种方式读取文件 040 详解HDFS API之FileSystem方式基本操作二 ...
如所述,WiremockClient与Wiremock的本机Java API中可用的功能紧密对应。 使用pod可以从Xcode项目中构建JSON映射并将其发布到独立的Wiremock实例。 假定您熟悉使用Wiremock的基础知识,包括初始化独立实例并使用映射...
微信公众号管理平台,除实现官网后台自动回复、菜单管理、素材管理、用户管理、消息群发等基础功能外,还有二维码推广、营销活动、微网站、会员卡、优惠券等。 > zheng-wechat-app 微信小程序后台 ## 环境搭建...
Servlet server applet 运行在服务器端的小程序 Servlet就是一个接口,定义了Java类被...当服务器接收到客户端浏览器请求后,会解析请求URL路径,获取访问的Servlet的资源路径 查找web.xml文件,是否有对应的标签体
该项目提供了所有必需的资源,以启动和的必需组件以跟踪您的微服务。 还已经针对和进行了测试。 目录 迷你库 小班 使用端口转发 分配外部可访问的URL 普罗米修斯整合 社区 齐普金 Kubernetes 面料8 入门 要在...