1. URI统一资源标识符

URI(Uniform Resource Identify),统一资源标识符,是一个用于标识某一互联网资源名称的字符串。

URI的结构是 [scheme:]scheme-specific-part[#fragment][scheme:][//authority][path][?query][#fragment]

String[] address = new String[]{"http://user:pwd@www.abc.com:8080/a/b/c?q=java#fragment","tel:+123-4567-8910#frag"
};for (String addr : address) {URI uri = new URI(addr);System.out.println("URL:        " + uri);System.out.println("Scheme:     " + uri.getScheme());if (uri.isOpaque()) {System.out.println("Specific:   " + uri.getSchemeSpecificPart());} else {System.out.println("UserInfo:   " + uri.getUserInfo());System.out.println("Authority:  " + uri.getAuthority());System.out.println("Host:       " + uri.getHost());System.out.println("Port:       " + uri.getPort());System.out.println("Path:       " + uri.getPath());System.out.println("Query:      " + uri.getQuery());}System.out.println("Fragment:   " + uri.getFragment());System.out.println();
}

opaque表示URI是不是透明的,一个不透明的URI一般是不分层次的。输出

2. URL统一资源定位符

URL(Uniform Resource Location),统一资源定位符,可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。URL主要由Protocol://Authority/File#ref组成。

String[] address = new String[]{"http://user:pwd@www.abc.com:80/a/b/c?q=java#fragment","ftp://www.abc.com:8080/"
};for (String addr : address) {URL url = new URL(addr);System.out.println("URL:        " + url);System.out.println("Protocol:   " + url.getProtocol());System.out.println("UserInfo:   " + url.getUserInfo());System.out.println("Authority:  " + url.getAuthority());System.out.println("Host:       " + url.getHost());System.out.println("Port:       " + url.getPort());System.out.println("DefaultPort:" + url.getDefaultPort());System.out.println("Path:       " + url.getPath());System.out.println("File:       " + url.getFile());System.out.println("Query:      " + url.getQuery());System.out.println("Ref:        " + url.getRef());System.out.println();
}

其中Authority包含UserInfoHostPortFilePathQuery组成。输出

3. URLEncoder和URLDecoder

将非文本内容转换成"%xx"的形式。

URLEncoder.encode("value1=123&&valu2=pwd","UTF-8"); // value1%3D123%26valu2%3Dpwd
URLDecoder.decode("value1%3D123%26valu2%3Dpwd", "UTF-8"); // value1=123&valu2=pwd

源码下载: https://github.com/nai-chen/JavaBlog

Java URI和URL相关推荐

  1. java URI 与URL问题

    File类存在两个看起来很相似的方法toURI()和toURL(),这两个方法都是将文件转换成一个链接,可以网络访问.只是URI和URL的应用范围不同,URI来的更广. 那么为什么要使用toURI() ...

  2. Java魔法堂:URI、URL(含URL Protocol Handler)和URN

    转载自   Java魔法堂:URI.URL(含URL Protocol Handler)和URN 一.前言 过去一直搞不清什么是URI什么是URL,现在是时候好好弄清楚它们了!本文作为学习笔记,以便日 ...

  3. java中uri什么意思,java URI URL 个人理解。

    java URI URL 个人理解. URI 是资源标识符.就是相当于一个人的家庭住址. URL和URI类似.是资源定位的. 和URI不同的就是URL提供了获取东西的方法. java.io.Input ...

  4. java uri 是什么_java的URI和URL到底是什么

    在我们做开发时,经常有URI和URL弄混的问题,如果当时直接看URI和URL的源码就不可能弄混.首先我总结一下URI和URL的关系:他们的关系是:URL是一种特殊的URI,是URI包括URL, 下面用 ...

  5. JAVA中的URL和URI类的使用出现的非法字符问题

    今天在利用URI来创建文件对象的时候出现了异常 说是urI中包含了非法字符,一看发现URI中有一个空格字符 RFC3986文档规定,Url中只允许包含英文字母(a-zA-Z).数字(0-9).-_.~ ...

  6. Java web后端1 XML URI与URL HTTP Tomcat

    tomcat地址 规则:http://localhost:8080/项目名/文件名.html http://localhost:8080/WebProject/test.html 解决Tomcat 8 ...

  7. JAVA基础 - URI、URL和URN的区别

    什么是URI(统一资源标识符)? "A Uniform Resource Identifier (URI) 是一个紧凑的字符串用来标识抽象或物理资源." 用于标识一个抽象或物理资源 ...

  8. Google App Engine for Java下的URL编码转换问题

    URL编码问题 此部分参考英文资料: http://www.blooberry.com/indexdot/html/topics/urlencoding.htm http://www.w3school ...

  9. URI,URL和URN有什么区别?

    人们谈论URL , URI和URN好像是不同的东西,但是用肉眼看起来都是一样的. 它们之间有什么明显区别? #1楼 这是我的简化: URN:唯一资源名称,即" what"(例如ur ...

  10. URI、URL和URN的关系

    在学习Java网络编程时,对URI和URL概念模糊不清,于是进行了资料查询和知识总结.本文讲述了URI.URL和URN基本概念和区别联系,如有问题,切望指正. 一.URI.URL.URN基本概念 1. ...

最新文章

  1. django定时任务实现(言简意赅) Django折腾记之启动定时任务(转)
  2. Git bash 终止git log 命令
  3. Python 技术篇-用os库实现本地文件重命名实例演示
  4. c语言枚举入门,C语言入门之枚举与位运算(1)
  5. linux图形界面鼠标变成小手_加载Linux系统,树莓派变身桌面电脑
  6. python 硬件模拟_如何编写一个硬件模拟器?
  7. w7计算机的收藏夹里弄出桌面,Win7电脑桌面的便签怎么弄出来?
  8. DC漫画公司正在考虑进军NFT市场
  9. 一些常用的WebServices 天气,IP,邮编,Email,火车时刻表,股票 等等
  10. POJ 2406题解kmp算法的应用
  11. c语言freeimage库文件,FreeImage使用方法amp;FreeImage Tutorial
  12. ADB介绍—— 配置ADB环境变量
  13. 研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后,才发这现里的字全是都乱的。...
  14. 你为什么遇不到好公司
  15. gcc/g++搜索路径
  16. QTimer::singleShot使用
  17. dll修复精灵无法链接服务器,教你一键dll修复精灵怎么使用
  18. kindle paperwhite 使用体验
  19. anaconda使用jupyter
  20. micro-ros arduino esp32 ros2 笔记

热门文章

  1. 推荐系统之ALS算法详解
  2. 通信中间件技术之DDS
  3. 如何用abaqus建造8号槽钢并分析槽钢的受力
  4. 插件对计算机的运行有什么影响吗,电脑插件太多导致电脑运行缓慢怎么办 - 驱动管家...
  5. 以太网帧分析与IP报文结构分析(二)
  6. 怎么清理服务器数据库日志文件,SQL SERVER 数据库日志清理图文教程
  7. 【信号与系统】笔记合集,你确定不收藏吗?我已经收藏了
  8. python-网易云简单爬虫
  9. 关于集合set()补充
  10. 奥维地图从服务器获取信息超时,2021奥维地图不能用了原因及解决办法