2-基于HTTP的URL通信

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2基于HTTP的URL通信2.1URL简介2.2URL类2.3使用URL类实现单向通信2.4使用URLConnection类实现双向通信2.5简单网页浏览器的设计2.1URL简介URL(UniformResourceLocater)表示网络上某个资源地址,实现对网络资源的定位。协议://主机名:[端口号]/文件名#[引用]①协议:如HTTP、FTP。②主机名:资源所在计算机,既可以是IP地址,如127.0.0.1,也可以是主机名或域名,如localhost和。③端口号:用来区分不同的网络服务,指定建立到远程主机TCP连接的端口号,若未指定该端口号,则使用协议默认的端口,如http协议的默认端口为80。④文件名:包括该文件完整路径。⑤引用:资源内某个引用,定位显示文件内容的位置,如。注意:实际中并非所有URL都包含这些元素,对于多数的协议、主机名和文件名是必需的,而端口号和文件内部的引用则是可选的。Java中的URL类(note)Java中的URL类(1)包含在java.net.*中;(2)网络资源的URL为String类型。publicfinalclassjava.net.URLextendsjava.lang.object{//构造方法//常用方法}2.2URL类1.URL类的构造方法构造方法功能1)URL(Stringspec)throwsMalformedURLException2)URL(Stringprotocol,Stringhost,intport,Stringfile)~3)URL(Stringprotocol,Stringhost,Stringfile)~4)URL(URLcontext,Stringspec)~·根据spec指定完整URL地址创建URL对象。·根据protocol、host、port号和file创建URL对象。·根据指定protocol、host和file创建URL对象·通过上下文,对spec解析创建URL说明:使用URL构造方法创建对象时,若参数有错误,会产生一个非运行时异常MalformedURLException,表2-1中“~”表示“throwsMalformedURLException”.举例:访问山农大信息服务页面(),其URL构造:(1)newURL();(2)newURL(http,);(3)newURL(http,);//HTTP默认端口为80(4)URLurl=newURL();newURL(url,“resource.html”);/*用于访问同一主机上不同路径的文件*/2.URL类常用方法·publicStringgetAuthority()·publicObjectgetContent()·publicintgetDefaultPort()·publicStringgetFile()·publicStringgetHost()·publicStringgetPath()·publicintgetPort()·publicStringgetProtocol()·publictringgetQuery()·publicStringgetRef()·publicStringgetUserInfo()*publicURLConnectionopenConnection()·publicURLConnectionopenConnection(Proxyproxy)*publicInputStreamopenStream()·publicbooleansameFile(URLother)·获得URL实例的授权部分·获得URL实例的内容·获得URL实例所关联协议的默认端口号·获得URL实例的文件名·获得URL实例的主机名·获得URL实例的路径部分·获得URL实例的端口号·获得URL实例的协议名称·获得URL实例的查询部分·获得URL实例的锚点(“引用”)·获得URL实例的userInfo部分·返回一个URLConnection对象·通过指定的代理建立连接,返回URLConnection对象·返回一个用于从该连接读入的InputStream·比较两个URL实例,但不包括片段部分说明:一旦拥有URL对象,就可以使用getAuthority()、getDefaultPort()、getFile()、getHost()、getPath()、getPort()、getProtocol()、getQuery()、getRef()和getUserInfo()等方法获取URL的各种属性。在这些URL属性获取方法中,若某些属性不存在,这些方法就返回null或-1。[例2-1]URL类对象的创建及使用。程序:getnetinfo.java2.3使用URL类实现单向通信创建URL对象后,调用其openStream()实例方法即可访问指定的Web资源。openStream()方法与指定的URL建立连接并返回一个InputStream类的对象,然后通过I/O操作就可以用字节流的方式读取Web页面。[例2-2]通过URL对象打印一个web页面。程序:ReadURL_1.java[例2-3]通过URL对象读一张图片。程序:getURLImage.java2.4使用URLConnection类实现通信问题:实际应用中,不仅需要读取服务器中的数据,而且要能将信息发送到服务器中,即实现同网络资源的双向通信,使用URLConnection类解决此问题。URLConnection类定义在java.net包中,URLConnection类的对象可以与指定URL建立动态连接,可以向服务器发送请求读取数据,同时也能将数据写回服务器。创建URLConnection类对象,一般使用URL对象URLConnection()方法返回,URLConnection类基于HTTP协议。1.URLConnection类的常用方法及作用常用方法功能·publicintgetContentLength()·publicStringgetContentType()·publiclonggetDate()·publicStringgetHeaderField(intn)·publicStringgetHeaderField(Stringname)*publicInputStreamgetInputStream()·publiclonggetLastModified()*publicOutputStreamgetOutputStream()·publicPermissiongetPermission()·publicvoidsetDoInput(booleandoinput)·publicvoidsetDoOutput(booleandooutput)·获取资源文件的长度(content-length头字段的值)·获取资源文件的类型(content-type头字段的值)·获取资源文件的创建日期(date头字段的值)·获取第n个头字段的值·获取指定的头字段的值·获取从此打开的连接读取的“输入流”·获取last-modified头字段的值·获取写入到此连接的“输出流”·获取一个权限对象,其代表建立此对象表示的连接所需的权限·将此URLConnection的doInput字段的值设置为指定的值·将此URLConnection的doOutput字段的值设置为指定的值[例2-4]通过URL对象读取相关数据。程序:URLDemo.java2.使用URLConnection类的几个关键操作(1)建立连接URLurl=newURL();URLConnectionurlConn=url.openConnection();(2)向服务器端写数据PrintStreamps=newPrintStream(urlConn.getOutputStream());ps.println(string_data);(3)从服务器端读数据InputStreamin=urlConn.getInputStream());in.read();URL编程思考题(1)程序:完成页面的文本内容分析及分类。(2)程序:完成页面中的图片下载并分类。(3)程序:试编写一个搜索引擎程序。

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功