基于CBR的自来水经济调度--理论及实现.ppt

上传人:za****8 文档编号:15872665 上传时间:2020-09-11 格式:PPT 页数:34 大小:1.48MB
返回 下载 相关 举报
基于CBR的自来水经济调度--理论及实现.ppt_第1页
第1页 / 共34页
基于CBR的自来水经济调度--理论及实现.ppt_第2页
第2页 / 共34页
基于CBR的自来水经济调度--理论及实现.ppt_第3页
第3页 / 共34页
点击查看更多>>
资源描述
第6章 JSP应用实战进阶,龚涛 东华大学信息科学与技术学院,2012年3月 教材:JSP程序员成长攻略 网上课程:,6.2 城市天气信息查询系统,很多网站都提供了显示天气信息的功能 这些天气信息一般从气象网站上获取 这里面采用了网上资源自动获取技术 这节课利用JSP技术设计城市天气信息查询系统,可用于个人网站上,6.2.1 设计思路,从最权威的 “中国天气网”获取天气预报信息 这个网站提供了查询接口参数,例如北京天气: 目的是将查询结果中有关天气信息的部分嵌入到我们自己的网页中 想设计一种工具,按照指定的网址(URL)将对应的天气预报页面信息下载到本地,然后通过这种“工具”提取需要的天气信息,三步走,(1)利用待查询天气信息的城市名构造URL: (2)通过URL类将指定的页面信息下载到本地; (3)对已下载的信息进行文本分析,提出相关的天气预报信息。,6.2.2 URL和URLConnection类,使用URL类和URLConnection类提供的方法,可以有效自动获取网络资源。 在编写Java程序时,需将.*包导入才能使用这两个类。 public URL(String spec) throws MalformedURLException 该方法是利用spec来构造一个URL 对象。MalformedURLException表示产生错误时抛出的异常。,URL类的set方法,set方法用于设置 URL 的字段,语法格式如下: protected void set(String protocol, String host, int port, String file, String ref) protocol表示使用的协议,host表示连接的主机名,port表示连接的协议端口,file表示在主机上指定的文件名,ref表示标记。,getPort、getProtocol和getHost方法,getPort方法用于获取URL 的端口号。若端口没有设置,则返回 -1。 public int getPort() getProtocol方法用于获取URL 的协议名。 public String getProtocol() getHost方法用于获取URL的主机名。 public String getHost(),getFile、getRef和toString方法,getFile方法用于获取URL 的文件名。 public String getFile() getRef方法用于返回URL 的热点。 public String getRef() toString方法用于构造 URL 的字符串表示。 public String toString(),openConnection 和openStream方法,openConnection方法返回一个连接到由URL指定的远程对象的URLConnection对象。如果远程对象不存在则抛出异常IOException。在编写程序中,必须捕获该异常,否则会出现编译错误。 public URLConnection openConnection() throws IOException openStream方法用于用于打开URL指向的连接,并返回从该连接读取数据的InputStream。 public final InputStream openStream() throws IOException,URLConnection类的常用方法,getURL方法用于返回URLConnection 的 URL 值。 public URL getURL() getContentLength 方法返回该连接URL所指向资源的内容长度。 public int getContentLength() getContentType方法返回URL 指向资源的内容类型,若未知则为null。 public String getContentType(),URLConnection类的常用方法,getContentEncoding方法用于返回URL指向资源的内容编码,若未知则为null。 public String getContentEncoding() getExpiration方法返回URL指向资源的终止日期,若未知则为0。 public long getExpiration() getDate方法返回URL 指向资源的发送日期,若未知则为0。 public long getDate(),URLConnection类的常用方法,getLastModified方法用于返回URL指向的资源的最后修改日期,若未知则为0。 public long getLastModified() getContent方法获取URL 指向的资源的内容。 public Object getContent() throws IOException getInputStream方法用于获取从该打开的连接读取的输入流。 public InputStream getInputStream() throws IOException,例1 显示搜狐网站连接的属性,URL url=new URL(); URLConnection c=url.openConnection(); System.out.println(“内容类型:+c.getContentType(); System.out.println(内容编码: +c.getContentEncoding(); System.out.println(内容长度: +c.getContentLength(); System.out.println(创建日期: +new Date(c.getDate(); System.out.println(最后修改日期: +new Date(c.getLastModified(); System.out.println(终止日期: +new Date(c.getExpiration();,例1的Java完整程序源代码(1),/* ShowConnectionExample.java文件 */ import .*; import java.io.*; import java.util.Date; public class ShowConnectionExample public ShowConnectionExample() public static void main(String args) try URL url=new URL();,例1的Java完整程序源代码(2),try URLConnection c=url.openConnection(); System.out.println(内容类型: +c.getContentType(); System.out.println(内容编码: +c.getContentEncoding(); System.out.println(内容长度: +c.getContentLength(); System.out.println(创建日期: +new Date(c.getDate(); System.out.println(最后修改日期: +new Date(c.getLastModified(); System.out.println(终止日期: +new Date(c.getExpiration(); ,例1的Java完整程序源代码(3),catch(IOException io2) System.out.println(IOException异常:+io2.toString(); catch(MalformedURLException e) System.out.println(MalformedURLException异常:+e.toString(); ,例1程序的运行结果,6.2.3 开发JWeather类,JWeather类是利用URL和URLConnection类的常用方法来实现的,其功能是下载指定的网络资源,下载的结果就是一个字符串(String)。 通过构造一个Java Bean来实现此功能,此Java类的文件名为JWeather.java 。 在JWeather.java文件中,定义了一个函数getWeatherInfo(),其作用是返回由URL指定资源的内容。,Weather.java程序源代码(1),/*JWeather.java文件 */ package ch6; import .*; import java.io.*; public class JWeather URL url; String city=“上海; URLConnection urlc; public JWeather() public void setCity(String s) this.city=s;,Weather.java程序源代码(2), public String getWeatherInfo() String txtContent=, citynumber=; if(city.equals(上海) citynumber=101020100; try URL url=new URL( +citynumber+.shtml);,Weather.java程序源代码(3),URLConnection urlc=url.openConnection(); urlc.connect(); InputStream is=null; int ch; try is = urlc.getInputStream(); ch = is.read(); while(ch!=-1) txtContent=txtContent+(char)ch; ch=is.read(); ,Weather.java程序源代码(3)的改进,URLConnection urlc=url.openConnection(); urlc.connect(); InputStream is=null; int ch; try / 取得输入流,并使用Reader读取 BufferedReader reader = new BufferedReader(new InputStreamReader( 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(IOException io) txtContent=IO Exception:+io.toString(); return txtContent; catch(IOException e) txtContent=IO Exception:+e.toString(); return txtContent; ,Weather.java的编译,6.2.4 文本数据处理方法,下载后的数据实际上是HTML网页代码,包含文字信息和HTML标记,是一种非结构化数据。对此,我们首先应将无关和冗余的信息删除,然后才方便提取我们需要天气预报信息。 假设下载的文本数据存放在webtext变量中: String webtext=weather.getWeatherInfo(); (1)提取和之间的数据。 从前面介绍的HTML语言知道,天气预报信息应包含在标记和之间。,Filterweb源代码(1),%! /删除字符串str中由字符ch1到ch2之间的文本串,包括ch1到ch2 String filterweb(String str, char c1, char c2) int pos1=str.indexOf(c1); int pos2=str.indexOf(c2); while(pos1!=-1) pos1=str.indexOf(c1); pos2=str.indexOf(c2); return str; %,文本数据处理方法,(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 提取天气预报信息,假设是查询上海的天气预报信息,则对下载的数据执行上述所有操作后得到如下图的文本数据。 如何提取这些信息呢?发现 “发布”后面紧接着就是天气信息发布的具体时间、以及自今天起(包括今天)连续四天的天气信息。且由于“发布”在整个文本串中是唯一的,所以不妨通过查找“发布”来计算这些信息在文本串中的位置,然后通过位置提取天气预报信息。,PC机 版本的 天气 预报 网站,手机 版本的 天气 预报 网站,未消除 HTML 格式的 天气 预报 信息,消除 HTML 格式的 天气 预报 信息,答疑联系信息,办公室电话:021-67792312 手机:18201798064 E-mail: 办公室地址:2号学院楼216室,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!