搜索指定的网页的主要处理过程如下:
a、 首先需要取得指定网页内容, 即网页原始的HTML文本
b、 对我那个也上的内容进行分析, 即对HTML文本进行解析, 分离出各种标记或元素。 例如标题(Title)、描述(Description)、内容(Content)、超级链接等。 把所有的超级链接放到某一数据结构里, 如Vector
c、 根据关键字对内容进行检索。 采用某一种字符串查找算法对内容进行查找, 例如KMP算法
d、 最后将搜索的结果显示到页面上
这些处理过程如果用套接字进行编程, 通过编程进行HTML语法解析,功能实现将会变得十分复杂。 但是如果借助JAVA系统的类或者函数可以相对容易地完成, 因此我在此处采用该设计思路:
A、 取得指定网页内容时,可以采用java.net.*包中的一些类和函数从而获得HTML文本流。 例如URL类, URLConnection类、HTTPURLConnection类等, 避免使用一些网络底层编程类和函数
B、 对网页上的内容进行分析, 即对HTML文本进行解析, 可以采用javax.swing.html.HTMLEditorKit.*、 javax.swing.text.parser.*、 javax.swing.text.html.*等包中的类和函数, 比重重要的有ParseDelegator类、 ParseCallback类、HTML类、HTML.tag类、 MutableAttributeSet类。
——————————————————下面就几个主要的类和函数做一个简单的介绍——————————————
1、 URL
URL(String protocol, String host, int port, String file)根据指定protocol、host、port号和file创建URL对象。 如果指定了未知协议则抛出异常: MalformedURLException
URL(URL context, String spec, RLStreamHandler handler): 通过在指定的上下文中用指定的处理程序对给定的spec进行解析来创建URL。 如果处理程序为null, 则使用两参数构造函数进行解析。 (handler为URL的流处理程序)
final InputStream openStream() 打开此URL的链接并返回一个用于从该链接读入的InputStream输入流。 该函数是openConnection().getInputStream()函数的简化形式。 返回值为从URL链接读入的输入流.
String getPath(): 获得URL的路径部分, 返回此URL的路径部分, 如果没有路径,则返回一个空字符串
boolean equals(Object obj) 比较此URL是否和另一个对象相等。 如果给定的对象不是一个URL则返回false.
2、 URLConnection类简介
... ...
写得太累了, 其他的还是自己参照API学习使用吧。 ^_^ ^_^