URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址。表示为互联网上的资源,如网页或者FTP地址。

本章节我们将介绍Java是如处理URL的。URL可以分为如下几个部分。

protocol://host:port/path?query#ref

protocols(协议)可以是 HTTP, HTTPS, FTP, 和File。port 为端口号。path为文件路径及文件名。

HTTP协议的URL实例如下:

http://www.w3cschool.cc/index.html?language=cn#j2se

以上URL实例并未指定端口,因为HTTP协议默认的端口号为80。


URL 类方法

在java.net包中定义了URL类,该类用来处理有关URL的内容。对于URL类的创建和使用,下面分别进行介绍。

java.net.URL提供了丰富的URL构建方式,并可以通过java.net.URL来获取资源。

序号 方法描述
1 public URL(String protocol, String host, int port, String file) throws MalformedURLException.
通过给定的参数(协议、主机名、端口号、文件名)创建URL。
2 public URL(String protocol, String host, String file) throws MalformedURLException
使用指定的协议、主机名、文件名创建URL,端口使用协议的默认端口。
3 public URL(String url) throws MalformedURLException
通过给定的URL字符串创建URL
4 public URL(URL context, String url) throws MalformedURLException
使用基地址和相对URL创建

URL类中包含了很多方法用于访问URL的各个部分,具体方法及描述如下:

序号 方法描述
1 public String getPath()
返回URL路径部分。
2 public String getQuery()
返回URL查询部分。
3 public String getAuthority()
获取此 URL 的授权部分。
4 public int getPort()
返回URL端口部分
5 public int getDefaultPort()
返回协议的默认端口号。
6 public String getProtocol()
返回URL的协议
7 public String getHost()
返回URL的主机
8 public String getFile()
返回URL文件名部分
9 public String getRef()
获取此 URL 的锚点(也称为"引用")。
10 public URLConnection openConnection() throws IOException
打开一个URL连接,并运行客户端访问资源。

实例

以上实例演示了使用java.net的URL类获取URL的各个部分参数:

// 文件名 : URLDemo.javaimport java.net.*;
import java.io.*;public class URLDemo
{public static void main(String [] args){try{URL url = new URL("http://www.w3cschool.cc/index.html?language=cn#j2se");System.out.println("URL is " + url.toString());System.out.println("protocol is "+ url.getProtocol());System.out.println("authority is "+ url.getAuthority());System.out.println("file name is " + url.getFile());System.out.println("host is " + url.getHost());System.out.println("path is " + url.getPath());System.out.println("port is " + url.getPort());System.out.println("default port is "+ url.getDefaultPort());System.out.println("query is " + url.getQuery());System.out.println("ref is " + url.getRef());}catch(IOException e){e.printStackTrace();}}
}

以上实例编译运行结果如下:

URL is http://www.w3cschool.cc/index.html?language=cn#j2se
protocol is http
authority is www.w3cschool.cc
file name is /index.htm?language=cn
host is www.amrood.com
path is /index.html
port is -1
default port is 80
query is language=cn
ref is j2se

URLConnections 类方法

openConnection() 返回一个 java.net.URLConnection。

例如:

  • 如果你连接HTTP协议的URL, openConnection() 方法返回 HttpURLConnection 对象。

  • 如果你连接的URL为一个 JAR 文件, openConnection() 方法将返回 JarURLConnection 对象。

  • 等等...

URLConnection 方法列表如下:

序号 方法描述
1 Object getContent() 
检索URL链接内容
2 Object getContent(Class[] classes) 
检索URL链接内容
3 String getContentEncoding() 
返回头部 content-encoding 字段值。
4 int getContentLength() 
返回头部 content-length字段值
5 String getContentType() 
返回头部 content-type 字段值
6 int getLastModified() 
返回头部 last-modified 字段值。
7 long getExpiration() 
返回头部 expires 字段值。
8 long getIfModifiedSince() 
返回对象的 ifModifiedSince 字段值。
9 public void setDoInput(boolean input)
URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。
10 public void setDoOutput(boolean output)
URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输出,则将 DoOutput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 false。
11 public InputStream getInputStream() throws IOException
返回URL的输入流,用于读取资源
12 public OutputStream getOutputStream() throws IOException
返回URL的输出流, 用于写入资源。
13 public URL getURL()
返回 URLConnection 对象连接的URL

实例

以下实例中URL采用了HTTP 协议。 openConnection 返回HttpURLConnection对象。

// 文件名 : URLConnDemo.javaimport java.net.*;
import java.io.*;
public class URLConnDemo
{public static void main(String [] args){try{URL url = new URL("http://www.w3cschool.cc");URLConnection urlConnection = url.openConnection();HttpURLConnection connection = null;if(urlConnection instanceof HttpURLConnection){connection = (HttpURLConnection) urlConnection;}else{System.out.println("Please enter an HTTP URL.");return;}BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String urlString = "";String current;while((current = in.readLine()) != null){urlString += current;}System.out.println(urlString);}catch(IOException e){e.printStackTrace();}}
}

以上实例编译运行结果如下:

$ java URLConnDemo.....a complete HTML content of home page of amrood.com.....

Java URL处理相关推荐

  1. java url加密解密,java URL 编码解码,该如何解决

    java URL 编码解码 我写了两个接口 一个是对字符串加密 的,一个是解密的  .加密的可以通过调用接口生成加密字符串如下: Oc0PEwKrLzHqT25hYLhWP5wlk5HROPJoWC3 ...

  2. UrlUtils工具类,Java URL工具类,Java URL链接工具类

    UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...

  3. java中http解析url,java url 编码(解析http请求汉语言地址 )

    java url 编码(解析http请求中文地址 ) 在近在做项目的过程中,由于客户那边服务器上提供的有很多中文结构目录.请求要的地址不能正常运行显示出来.下面来分享一下我对http协议处理请求中文的 ...

  4. Java URL协议扩展实现

    2019独角兽企业重金招聘Python工程师标准>>> Java URL协议扩展实现 博客分类: java 在信息交互系统设计中,不乏有自定义通讯协议设计.本章会介绍如何利用 jav ...

  5. java url参数转换:_提示:通过URL激活并发送参数

    java url参数转换: 世界上最安全的密码是不存在的密码. 使用完全随机的密钥从等式中删除用户. 公平地说,这有一些缺点,并且密码仍然存在于某处(在您的电话/电子邮件中),但通常这样效果很好... ...

  6. java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串...

    java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串 1 package com.zdz.test; ...

  7. Java URL(一)——概念、构造

    Java URL URL(Uniform Resource Locator)是一个指向网络上资源的引用(或地址). 可以通过向Web浏览器提供URLs来定位Internet上的文件. 互联网上彼此交互 ...

  8. Java URL转义

    encodeUrl = java.net.URLEncoder.encode(url, "utf-8") url = "src/test.java" encod ...

  9. java URL 转码和解码

    java URL 转码和解码 . 代码部分: String str = URLEncoder.encode("世界", "UTF-8"); System.out ...

  10. java url路径包含中文_谈谈 Java 类加载机制

    概述 类加载器主要分为两类,一类是 JDK 默认提供的,一类是用户自定义的. JDK 默认提供三种类加载器: Bootstrap ClassLoader 启动类加载器:每次执行 java 命令时都会使 ...

最新文章

  1. ros在arm linux上移植,ROS在Zedboard上的移植
  2. javacript实现不被浏览器拦截打开新窗口
  3. 职业生涯中12个愚蠢想法
  4. 显示mnist手写数字
  5. 剑指offer之求两个数之和(不能使用四则运算)
  6. http:(2):http请求方法
  7. 九度OJ 1076:N的阶乘 (数字特性、大数运算)
  8. Win10安装 WSL Ubuntu Linux系统,非双系统,完美兼容超详细版本
  9. 使用Hibernate注解Annotations进行对象映射的异常处理
  10. Python编程及应用--数据分析与科学计算可视化培训班
  11. sql date 函数_SQL Server DATE函数–终极指南
  12. 拓端tecdat:matlab数据可视化交通流量分析天气条件、共享单车时间序列数据
  13. Java生成开发帮助文档 IDEA
  14. 出去计算机写保护,u盘写保护怎么去掉
  15. 深入理解MyBatis缓存
  16. FinsTCP协议的Java Socket
  17. windows虚拟化服务器搭建,windows虚拟化服务器搭建
  18. Java基础入门及安装准备
  19. 机器学习 贝叶斯分类器 拉普拉斯修正
  20. centos mysql部署_CentOS下MySQL 8.0安装部署,超详细!

热门文章

  1. 关于URL重写的一点心得
  2. android 电容屏(二):驱动调试之基本概念篇
  3. 高通平台点亮LCD个人总结
  4. php 设置时区_为什么没有 Asia/Beijing 时区?
  5. r语言中矩阵QR分解_从零开始学R语言Day4|向量、矩阵和数组
  6. Python - - 项目实战 -- pygame 快速入门
  7. 第58件事 借势文案创作实例
  8. js中关于new Object时传参的一些细节分析
  9. 《众妙之门——Web用户体验设计与可用性测试》一2.3 总结
  10. SpringMVC处理自定义异常,通过读取配置文件把错误信息显示在前台页面