`

基础入门:Java获取URL对应的资源

    博客分类:
  • Java
阅读更多

  认识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");
  }
  }
  }
  }
  另外,还可以通过协议处理器自定义协议。

分享到:
评论

相关推荐

    计算机应用基础计算机基础知识(共84张PPT).pptx

    网址是网络地址的简称,也叫统一资源定位器URL(Uniform Resource Locator)。 概念:IP地址是指Internet中不同计算机的相互通信必须具有相应的地址标识。 级别 科目名称 科目代码 考试时间 考试方式 一级 计算机...

    基于springboot+jpa实现java后台api接口,点餐系统源码+项目说明(高分毕设).zip

    springboot实战入门,springboot+jpa实现java后台api接口 # 实现功能 - 1 购物车功能 - 2 java后台api接口 - 3 简单的电商订单后台 - 4 javaweb网站 - 5 微信小游戏体验 #### #### 项目中的sql.txt文档中是创建...

    Java EE常用框架.xmind

    Java EE常用框架 WebService 介绍 基于Web的服务。... realm中获取认证的信息,查询出该用户对应的权限,封装到simpleAuthorizationInfo中,PermissionsAuthorizationFilter会根据对应的权限来比对。

    riemann-java-client:黎曼Java客户端

    其对应的(自动生成的)Java类 伪像 工件可以通过,您可以将其添加到maven存储库中,如下所示: &lt; id&gt;clojars.org &lt; url&gt;http://clojars.org/repo&lt;/ url&gt; 注意:客户端的名称空间以前是com.aphyr但自0.4.2版本...

    Python入门网络爬虫之精华版

    Python入门网络爬虫之精华版 Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下。 首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要...

    xheditor-1.1.14

    阅读本章节请先阅读:xhEditor入门基础,若你已经熟悉xhEditor的基本使用,请往下继续。 xhEditor提供两种方式初始化编辑器: 方法1:利用class属性来初始化和传递各种初始化参数,例: class="xheditor {skin:'...

    Struts2入门教程(全新完整版)

    重定向到一个URL 16 org.apache.struts2.dispatcher.ServletRedirectResult 16 redirectAction 16 重定向到一个Action 16 org.apache.struts2.dispatcher.ServletActionRedirectResult 16 plainText 16 显示源文件...

    网管教程 从入门到精通软件篇.txt

    网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...

    java微信公众号MVC开发框架

    是识别微信公众号的唯一标识,透过url我们可以通过微信上下文帮助类(WeixinContextHelper)的静态方法获取到微信上下文及访问token,另外,在微信方法中我们也可以通过注入WeixinContext参数来获得微信上下文。...

    java百度贴吧源码-easy-window:HTML5桌面应用程序开发通用工具

    java百度贴吧源码 easy-window是什么? easy-window 是一个旨在简化桌面开发难度的通用窗体,它可以让你使用当前主流HTML5技术快速地创建Windows桌面应用程序。创作桌面应用,不需要掌握QT,C++,C#,Java那些繁琐的...

    基于开源项目bistoury的java应用故障诊断工具预研demo源码.zip

    基于开源项目bistoury的java应用故障诊断工具预研demo源码.zip 故障诊断介绍 java应用故障诊断工具预研 demo ,基于开源项目bistoury修改,99.999%代码保持一致,原项目明显是为多节点大集群设计,对于小集群来说...

    springmybatis

    (读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看...

    JavaScript基础和实例代码

    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 ...

    Java高性能高并发实战之页面优化技术

    文章目录前言正文增加缓存页面静态化,前后端分离页面缓存实际操作URL缓存对象缓存具体实现思想具体...在前面学习到了基础的登录功能模块的设计(还在继续完善中)以及Redis封装类的设置对应的是github源码miaosha_2

    快速搭建移动App服务器 (win+tomcat+轻开平台+access入门版)

    除了基本开发标签语言及表达式(参见同一下载包中的开发手册)外,轻开平台特别针对移动App最常用的json文本格式开发的对应规则:  文件扩展名须为json(如:one.json)或用JspEasy扩展  文件内容须为闭合的json...

    Hadoop从入门到上手企业开发

    036 HDFS Java API 两种方式介绍及使用URL API详解一 037 使用URL API详解二 038 使用HDFS FileSystem API 详解 039 HDFS文件系统读写流程及HDFS API两种方式读取文件 040 详解HDFS API之FileSystem方式基本操作二 ...

    WiremockClient:Wiremock独立实例的HTTP客户端

    如所述,WiremockClient与Wiremock的本机Java API中可用的功能紧密对应。 使用pod可以从Xcode项目中构建JSON映射并将其发布到独立的Wiremock实例。 假定您熟悉使用Wiremock的基础知识,包括初始化独立实例并使用映射...

    单点登录源码

    微信公众号管理平台,除实现官网后台自动回复、菜单管理、素材管理、用户管理、消息群发等基础功能外,还有二维码推广、营销活动、微网站、会员卡、优惠券等。 &gt; zheng-wechat-app 微信小程序后台 ## 环境搭建...

    Servlet

    Servlet server applet 运行在服务器端的小程序 Servlet就是一个接口,定义了Java类被...当服务器接收到客户端浏览器请求后,会解析请求URL路径,获取访问的Servlet的资源路径 查找web.xml文件,是否有对应的标签体

    kubernetes-zipkin:Kubernetes与OpenZipkin的集成

    该项目提供了所有必需的资源,以启动和的必需组件以跟踪您的微服务。 还已经针对和进行了测试。 目录 迷你库 小班 使用端口转发 分配外部可访问的URL 普罗米修斯整合 社区 齐普金 Kubernetes 面料8 入门 要在...

Global site tag (gtag.js) - Google Analytics