URL 以及 URLConnection 类的使用

news2024/9/21 10:59:59

1. 概述
       java 提供了两个类,在这两个类里封装了大部分 Web 相关的各种操作。这两个类是 URL 类
和 URLConnection 类。
2. URL 类
       java.net.URL 类定义了一个统一的资源定位器,它是指向互联网“资源”的指针。可以定
位互联网上的资源。并且在定位的资源存在的情况下,允许以流的方式读取该资源。这些资源
可能是一个简单的文件,也可能是一个目录,甚至可以是一个复杂的对象,比如搜索引擎。
在 JDK 6.0 中 URL 类提供 6 种构造方法,在这里我们介绍常用的两种,第一种是
URL(String spec),它只有一个构造参数,这个构造方法表示用指定的字符串创建一个 URL 对
象,这个字符串呢它是一个 URL 地址,比如 http://localhost:8080/index.html,我们就可以
根据这个 URL 地址字符串的表示形式创建一个 URL 对象。第二种构造方法有四个构造参数,
protocol 表示网络协议,host 表示主机名,port 表示端口号,file 表示资源路径。这个构造
方法会使用指定的网络协议,主机名,端口号和资源路径创建一个 URL 对象。如下表所示:


下面给大家介绍一下 URL 类的常用方法,如下表所示:

 

 

       介绍完了 URL 类的构造方法和常用方法,下面我们来通过案例 1 来详细看一下这些方法在
程序中是怎么使用的。
案例 1:

public static void main(String[] args) {
    try {
        URL url = new URL("http://localhost:8080/index.jsp");
        System.out.println("此 URL 的主机是: " + url.getHost());
        System.out.println("此 URL 的协议是: " + url.getProtocol());
        System.out.println("此 URL 的端口是: " + url.getPort());
        System.out.println("此 URL 的路径是: " + url.getPath());
    } catch (Exception e) {
        e.printStackTrace();
    }
}


执行结果如下图所示:


3. URLConnection 类
     URLConnection 类代表应用程序和 URL 之间的通信连接。此类的实例可以通过调用 URL 对
象的openConnection()方法获得,URLConnection对象可用于读取或写入 URL对象引用的资源。
我们要向创建一个程序和 URL 之间的连接,也就是说我们要创建一个 URLConnection 对象,那
么我们首先要创建一个 URL 对象 ,然后在 URL 对象上调用 openConnection()方法来创建一个
连接对象,也就是说 URL 对象的 openConnection()方法会返回一个 URLConnection 对象。因此
呢,URLConnection 对象就只有一个构造方法,构造参数就是一个 URL 对象,接下来,下面我
们要了解的是 URLConnection 类的常用方法。
        URLConnection 类的常用方法如下表所示:

 

同样的,我们也通过一个案例来理解这些方法:
案例 2:

public static void main(String[] args) throws MalformedURLException,IOException {
    URL url = new URL("http://www.jb-aptech.com.cn");
    URLConnection con = url.openConnection();
    System.out.println("使用的 URL 是:" + con.getURL());
    System.out.println("内容类型:" + con.getContentType());
    System.out.println("内容长度:" + con.getContentLength());
    System.out.println("最后修改:" + con.getLastModified());
    System.out.println("超时设置:" + con.getConnectTimeout());
}


下面我们执行这个程序,我们来看一下具体的打印效果。如图所示:


        大家可以看到,我们得到的 URL 就是我们创建 URL 对象时的网址。而这个 URL 连接里 URL
引用资源的内容类型是 text/html;charset=GBK,其中 charset 表示数据包中的语言类型,这
里是 GBK 的。而 URL 引用资源的内容长度呢就是 4509,它表示假如我们打开这个网址,那么在
这个网址里就包含 4509 个字符。大家注意,最后修改时间和超时设置都是 0,最后修改时间 0
表示这里没有得到,未知的最后修改时间,而超时设置是 0 呢,则表示超时设置被禁用,也就
是超时无穷大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/416952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LInux一天10题 day1

su(switch user) 命令用于更改其他使用者身份, usermod -l 修改账号名称,使用格式:usermod -l new_name old_name 修改用户权限: 方法1 1、先切换到root权限的用户登录下,修改 /etc/sudoers 文件,找…

games103——作业1

实验一主要实现简单的刚体动画模拟(一只兔子),包括 impulse 的碰撞检测与响应,以及 Shape Matching方法。 完整项目已上传至github。 文章目录简单刚体模拟(不考虑碰撞)平移运动旋转运动粒子碰撞检测与响应碰撞检测碰撞响应Penalty MethodsQuadratic Pen…

如何安全的从硬盘恢复文件?

可以从硬盘中恢复永久删除的文件吗? “我删除了一些看起来不重要的文件夹,并清空了回收站。但在几天后,我意识到删除的文件夹里有些重要的数据。如何恢复永久删除的文件?谢谢!” 随着科技的进步与发展&#xff0c…

LeetCode 2404. 出现最频繁的偶数元素

原题链接:2404. 出现最频繁的偶数元素 给你一个整数数组 nums ,返回出现最频繁的偶数元素。 如果存在多个满足条件的元素,只需要返回 最小 的一个。如果不存在这样的元素,返回 -1 。 示例 1: 输入:nums …

OpenAI团队抢着用的编程语言?

作为一名合格的(准)程序员,必做的一件事是关注编程语言的热度,编程榜代表了编程语言的市场占比变化,它的变化更预示着未来的科技风向和机会! 快一起看看本月排行有何看点: 4月Tiobe排行榜前15…

如何学习智能交通?

AI的专业领域知识是指AI与具体应用领域相结合时所需要的该应用领域的知识。AI的应用领域非常广泛,例如计算机视觉、智能交通、智能制造、智慧金融、智慧教育、智慧农业、智慧能源、智能通信、智能芯片等。本文主要介绍智能交通的基本概念、发展历程、主要研究内容、…

DAMA数据治理认证,一定要先考CDGA才能考CDGP吗?

DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…

react4:配置网络请求axios --- 配置@路径别名

1. axios 请求安装:npm i axios axios 二次封装:配置,拦截器等应用 在:utils文件夹下request.js中配置 //utils文件夹下request.js中配置//导入 axios import axios from "axios";//实例化axios var service axios.create({time…

QT5学习教程一——Hello World例子

一、打开 Qt Creator -文件-新建文件或项目-Application-Qt Widgets Application-选择,如图 1.1 图 1.2 将项目放到指定目录,便于管理。单击[下一步] 选择构建的环境,可以根据自己的配置来选择,本例子选择MSVC2015。MSVC是指微软的…

JAVA阶段考内容知识点的梳理

前言:这些都是很基本的,还有很多没有写出来,重点在于编程序理解。 目录 第一章概述 课堂总结 相关习题 第二章:语言基础 课堂总结 相关习题 第三章:类和对象 内容总结 相关习题 第四章:类的派生与…

【Linux】网络编程套接字(下)

🎇Linux: 博客主页:一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 看似不起波澜的日复一日,一定会在某一天让你看见坚持…

【三十天精通 Vue 3】 第十天 Vue 状态管理详解

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: 三十天精通 Vue 3 文章目录引言一、Vue 3 状态管理概述1.1 状态管理的概念1.2 状态管理的作用…

Spark基础 - 名词汇总及集群模式概述

原文地址: Spark基础 - 名词汇总及集群模式概述 本文档内容参考Spark官方文档:Cluster Mode Overview 一. Glossary(术语) TermMeaningcommentApplicationUser program built on Spark. Consists of a driver program and executors on the cluster.…

Springboot应用整合Sentinel实现限流、熔断、降级笔记

可以使用官方的sentinel 也可使用进行持久化改造后的Sentinel ,本文基于此进行记录。Sentinel持久化到Nacoshttps://blog.csdn.net/chenjian723122704/article/details/130098896 Sentinel版本为 1.8.6 Nacos版本为 2.2.0 关于网关限流、限流和熔断,我…

【Step1】Linux Kernel -基础

《Linux内核设计与实现.第3版》1-2章学习笔记 1. 获取内核源码 http://www.kernel.org 2. 内核版本命名规则 内核的版本号主要有四个数字组成。 从版本号: 偶数表示稳定版(可用于企业级环境),奇数表示开发版; 修订…

ack应答机制

ACK在 Kafka 中,ack(Acknowledgment)机制是指用于确认生产者发送的消息已经被成功写入到 Kafka 分区中的一种机制。生产者可以通过 ack 参数来控制这个机制,以便根据自己的需求进行设置。 ACK应答级别0:生产者发送过来…

手机号码归属地 API 实现个性化推荐的思路分析

前言 随着移动互联网和智能手机的普及,越来越多的人使用手机上网和购物,移动营销已成为企业获取用户和提升品牌知名度的重要手段。手机号码归属地 API 作为移动营销的关键工具,具有广阔的应用前景。 本文将探讨如何利用手机号码归属地 API …

IDEA配置MAVEN_OPTS

IDEA配置MAVEN_OPTS​ 解决问题 maven MAVEN_OPTS设置 maven编译优化 maven编译速度慢 maven打包编译很慢 maven多线程编译打包 IDEA Maven配置教程​​测试环境:Win10(64位) i7-7700HQ 16GB​​ 参考文章: ​​ ​JVM参数MetaspaceSize的误解​​ Java HotSpot™ 64-Bit Ser…

【AI浪潮下的挑战和机遇】许多职业即将消失,AI 即将战胜人类了吗?

文章目录前言一、人类科技发展史二、 AI浪潮下的挑战1. 数据安全和隐私保护问题2. 带来新的伦理和道德问题3. 版权和知识产权问题三、对传统行业和就业的冲击1.传统文本编辑行业受到冲击2.就业岗位的变化3.工作流程的变化4.创意版权问题四、AI浪潮下的机遇1.提高效率和创意性2.…

【软考备战·希赛网每日一练】2023年4月12日

文章目录一、今日成绩二、错题总结第一题三、知识查缺题目及解析来源:2023年04月12日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析: 依据题目画出PERT图如下: 关键路径长度(从起点到终点的路径中最长的一条&#x…