




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章JSP应用实战进阶 龚涛东华大学信息科学与技术学院 2012年3月教材 JSP程序员成长攻略 网上课程 6 2城市天气信息查询系统 很多网站都提供了显示天气信息的功能这些天气信息一般从气象网站上获取这里面采用了网上资源自动获取技术这节课利用JSP技术设计城市天气信息查询系统 可用于个人网站上 6 2 1设计思路 从最权威的 中国天气网 获取天气预报信息这个网站提供了查询接口参数 例如北京天气 三步走 1 利用待查询天气信息的城市名构造URL 6 2 2URL和URLConnection类 使用URL类和URLConnection类提供的方法 可以有效自动获取网络资源 在编写Java程序时 需将 包导入才能使用这两个类 publicURL Stringspec throwsMalformedURLException该方法是利用spec来构造一个URL对象 MalformedURLException表示产生错误时抛出的异常 URL类的set方法 set方法用于设置URL的字段 语法格式如下 protectedvoidset Stringprotocol Stringhost intport Stringfile Stringref protocol表示使用的协议 host表示连接的主机名 port表示连接的协议端口 file表示在主机上指定的文件名 ref表示标记 getPort getProtocol和getHost方法 getPort方法用于获取URL的端口号 若端口没有设置 则返回 1 publicintgetPort getProtocol方法用于获取URL的协议名 publicStringgetProtocol getHost方法用于获取URL的主机名 publicStringgetHost getFile getRef和toString方法 getFile方法用于获取URL的文件名 publicStringgetFile getRef方法用于返回URL的热点 publicStringgetRef toString方法用于构造URL的字符串表示 publicStringtoString openConnection和openStream方法 openConnection方法返回一个连接到由URL指定的远程对象的URLConnection对象 如果远程对象不存在则抛出异常IOException 在编写程序中 必须捕获该异常 否则会出现编译错误 publicURLConnectionopenConnection throwsIOExceptionopenStream方法用于用于打开URL指向的连接 并返回从该连接读取数据的InputStream publicfinalInputStreamopenStream throwsIOException URLConnection类的常用方法 getURL方法用于返回URLConnection的URL值 publicURLgetURL getContentLength方法返回该连接URL所指向资源的内容长度 publicintgetContentLength getContentType方法返回URL指向资源的内容类型 若未知则为null publicStringgetContentType URLConnection类的常用方法 getContentEncoding方法用于返回URL指向资源的内容编码 若未知则为null publicStringgetContentEncoding getExpiration方法返回URL指向资源的终止日期 若未知则为0 publiclonggetExpiration getDate方法返回URL指向资源的发送日期 若未知则为0 publiclonggetDate URLConnection类的常用方法 getLastModified方法用于返回URL指向的资源的最后修改日期 若未知则为0 publiclonggetLastModified getContent方法获取URL指向的资源的内容 publicObjectgetContent throwsIOExceptiongetInputStream方法用于获取从该打开的连接读取的输入流 publicInputStreamgetInputStream throwsIOException 例1显示搜狐网站连接的属性 URLurl newURL URLConnectionc url openConnection System out println 内容类型 c getContentType System out println 内容编码 c getContentEncoding System out println 内容长度 c getContentLength System out println 创建日期 newDate c getDate System out println 最后修改日期 newDate c getLastModified System out println 终止日期 newDate c getExpiration 例1的Java完整程序源代码 1 ShowConnectionExample java文件 importjava io importjava util Date publicclassShowConnectionExample publicShowConnectionExample publicstaticvoidmain String args try URLurl newURL 例1的Java完整程序源代码 2 try URLConnectionc url openConnection System out println 内容类型 c getContentType System out println 内容编码 c getContentEncoding System out println 内容长度 c getContentLength System out println 创建日期 newDate c getDate System out println 最后修改日期 newDate c getLastModified System out println 终止日期 newDate c getExpiration 例1的Java完整程序源代码 3 catch IOExceptionio2 System out println IOException异常 io2 toString catch MalformedURLExceptione System out println MalformedURLException异常 e toString 例1程序的运行结果 6 2 3开发JWeather类 JWeather类是利用URL和URLConnection类的常用方法来实现的 其功能是下载指定的网络资源 下载的结果就是一个字符串 String 通过构造一个JavaBean来实现此功能 此Java类的文件名为JWeather java 在JWeather java文件中 定义了一个函数getWeatherInfo 其作用是返回由URL指定资源的内容 Weather java程序源代码 1 JWeather java文件 packagech6 importjava io publicclassJWeather URLurl Stringcity 上海 URLConnectionurlc publicJWeather publicvoidsetCity Strings this city s Weather java程序源代码 2 publicStringgetWeatherInfo StringtxtContent citynumber if city equals 上海 citynumber 101020100 try URLurl newURL Weather java程序源代码 3 URLConnectionurlc url openConnection urlc connect InputStreamis null intch try is urlc getInputStream ch is read while ch 1 txtContent txtContent char ch ch is read Weather java程序源代码 3 的改进 URLConnectionurlc url openConnection urlc connect InputStreamis null intch try 取得输入流 并使用Reader读取BufferedReaderreader newBufferedReader newInputStreamReader urlc getInputStream utf 8 设置编码 否则中文乱码ch reader read while ch 1 txtContent txtContent char ch ch reader read reader close Weather java程序源代码 4 is close catch IOExceptionio txtContent IOException io toString returntxtContent catch IOExceptione txtContent IOException e toString returntxtContent Weather java的编译 6 2 4文本数据处理方法 下载后的数据实际上是HTML网页代码 包含文字信息和HTML标记 是一种非结构化数据 对此 我们首先应将无关和冗余的信息删除 然后才方便提取我们需要天气预报信息 假设下载的文本数据存放在webtext变量中 Stringwebtext weather getWeatherInfo 1 提取和之间的数据 从前面介绍的HTML语言知道 天气预报信息应包含在标记和之间 Filterweb源代码 1 删除字符串str中由字符ch1到ch2之间的文本串 包括ch1到ch2Stringfilterweb Stringstr charc1 charc2 intpos1 str indexOf c1 intpos2 str indexOf c2 while pos1 1 pos2 1 Filterweb源代码 2 str str substring 0 pos1 str substring pos2 1 str length pos1 str indexOf c1 pos2 str indexOf c2 returnstr 文本数据处理方法 2 过滤其他无关字符webtext webtext replace 过滤特殊字符webtext webtext replace 过滤特殊字符webtext webtext replace 过滤空格webtext webtext replace n 过滤换行符webtext webtext replace 过滤网页中的HTML标记 其中w1可换为w2 w3 w4 w5 6 2 5提取天气预报信息 假设是查询上海的天气预报信息 则对下载的数据执行上述所有操作后得到如下图的文本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025四川绵阳市奥林匹克体育学校考核招聘教练员5人备考考试题库附答案解析
- 2025广西南宁市五一西路学校招聘老师4人备考考试题库附答案解析
- 2025年河北承德市直事业单位公开选调工作人员51名考试备考题库及答案解析
- 区块链食品溯源技术-洞察及研究
- 2025内蒙古产权交易中心及所属子公司(第二批)招聘笔试参考题库附答案解析
- 多光谱成像算法研究-洞察及研究
- 电商价格弹性分析-洞察及研究
- 购置税减半活动策划方案
- 山场巡查管理制度
- 手指印画小樱桃课件
- 首台套申报培训课件
- 保安安检培训课件
- 中药药剂员职业考核试卷及答案
- 2025年脚手架租赁合同3篇
- 2025国家统计局济宁调查队城镇公益性岗位招聘3人备考题库及答案解析
- 快手运营课程培训课件
- 庭院绿化施工方案
- 《大学语文》课件 第16讲 智在纵横 苏秦始将连横
- 医院工作纪律培训课件
- 营房装修施工方案(3篇)
- 开远美景家乡课件
评论
0/150
提交评论