URI是对URL的抽象,不仅包括统一资源定位符,还包括统一资源名,在java中URI用java.net.URI类表示,这个类与java.net.URL类的区别表现在:

  • URI类完全有关于资源的标识和URI的解析,他没有提供方法来获取URI所标识的资源的标识
  • 相比URL类,URI类与相关的规范更一致
  • URI对象可以表示相对URI,URI类在存储URI之前会将其绝对化

简而言之,URL对象时对应网络获取的应用层协议的一个表示,二URI对象纯粹用于解析和处理字符串.

URI构造函数的用法

import java.awt.image.ImageProducer;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.net.*; public class Url { public static void main(String[] args) throws MalformedURLException, URISyntaxException { URI u1 = new URI("http://www.baidu.com");
URI u2 = new URI("http","//www.baidu.com",null);
URI u3 = new URI("http","//www.baidu.com","today");
URI u4 = new URI(null,"//www.baidu.com","today");//创建一个相对URI
URI u5 = new URI("http","//www.baidu.com","<");//片段标识赋符中禁止的字符自动转义
URI u6 = new URI("http","//www.baidu.com","/javafaq/index.html","referrer=cnet&date=2014-02-23","<");//加入了chax字符部分
URI u7 = new URI("ftp","anoymous:elharo#ibiblio.org","ftp.oreilly.com",21,"/javafaq/index.html",null,null);
System.out.println(u1);
System.out.println(u2);
System.out.println(u3);
System.out.println(u4);
System.out.println(u5);
System.out.println(u6);
System.out.println(u7); }
}/* output:
http://www.baidu.com
http://www.baidu.com
http://www.baidu.com#today
//www.baidu.com#today
http://www.baidu.com#%3C
http://%2F%2Fwww.baidu.com/javafaq/index.html?referrer=cnet&date=2014-02-23#%3C
ftp://anoymous:elharo%23ibiblio.org@ftp.oreilly.com:21/javafaq/index.html *///~

java URI的更多相关文章

  1. JAVA URI URL 区别

    String urlString = "http://192.168.21.77:8080/swp/mainPage?aa=11&bb%3D22"; URI uri = U ...

  2. java URI 与URL问题

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

  3. java URI 编码解码

    import java.io.UnsupportedEncodingException; /** * url转码.解码 */ public class UrlUtil { private final ...

  4. 基础篇:JAVA资源之IO、字符编码、URL和Spring.Resource

    目录 1 JAVA.IO字节流 2 JAVA.IO字符流 3 乱码问题和字符流 4 字符集和字符编码的概念区分 5 URI概念的简单介绍 6 URL概念及与URL的区别 7 Spring.Resour ...

  5. ActionBar ShareActionProvider

    添加share按钮 添加share按钮的主要步骤: 1. 在ActionBar中添加share按钮 2. 从item中获取ShareActionProvider ShareActionProvider ...

  6. NetBeans部署项目(Extjs)报错(一)

    NetBeans部署项目(Extjs)报错(一) 1.用NetBeans将项目部署到Tomcat中,报错. 具体如下: ant -f D:\\NetBeans\\workspace\\Foundati ...

  7. 深入理解Servlet原理

    Servlet介绍: 1. 如何返回一个网页: a. 静态网页 >新闻页.百度百科 >服务器保存一份HTML,直接返回给浏览器即可 b. 动态网页 >淘宝.QQ空间.微博 >服 ...

  8. spring boot 打包方式 spring boot 整合mybaits REST services

    <build> <sourceDirectory>src/main/java</sourceDirectory> <plugins> <plugi ...

  9. 5、Android-跨程序共享数据--内容提供器

    Android数据持久化技术:文件存储.SharedPreferences存储.数据库存储 使用这些持久化技术保存的数据只能再当前的应用程序中访问 但是对于不同应用之间的可以实现跨程序数据共享的功能 ...

随机推荐

  1. SFTP免密码登录原理

    概述 Public Key认证的主要魅力在于认证时承诺不必提供密码就能够同远程系统建立连接. Public Key认证的基础在于一对密钥,public key和private key,public k ...

  2. undefined symbol

    参考链接:  https://blog.csdn.net/shatterheart/article/details/52440149

  3. 关于java11 - 应该知道的

    Local Variable Type Inference# HTTP Client# Collections# Streams# Optionals# Strings# InputStreams# ...

  4. jsonp实现下拉搜索

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. 下面那些是无效的Java标识符?

    下面那些是无效的Java标识符?为什么? a.RESULT b.result c.12345 d.x12345y e.black&white f.answer_7 c和e是无效的,因为标识符不 ...

  6. Qemu-KVM管理

    内容: 一.KVM基本配置 二.KVM网络的桥接 三.创建虚拟机 四.虚拟机的关闭和启动 关于KVM: 1).KVM是开源软件,全称是kernel-based virtual machine(基于内核 ...

  7. TensorFlow学习笔记:共享变量

    本文是根据 TensorFlow 官方教程翻译总结的学习笔记,主要介绍了在 TensorFlow 中如何共享参数变量. 教程中首先引入共享变量的应用场景,紧接着用一个例子介绍如何实现共享变量(主要涉及 ...

  8. Centos7.5 VMtools的安装与卸载

    一.安装 1.自带tools:  选择VMware工具栏 => 虚拟机 => 安装VMtools 2.挂载光驱 3.tar -zxvf VMwareTools-10.3.2-9925305 ...

  9. go语言time包的学习(Time,Location,Duration,Timer,Ticker)

    package main;   import (     "time"     "fmt" )   func main() {     //time.Time代 ...

  10. Linux的notifier机制在TP中的应用【转】

    转自:https://blog.csdn.net/armfpga123/article/details/51771666 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...