当前位置:文档之家› 基于java网络浏览器的开发与实现

基于java网络浏览器的开发与实现

基于java网络浏览器的开发与实现
基于java网络浏览器的开发与实现

摘要

毫无疑问,网页浏览器已经彻底地改变了历史。对个人来说,它改变了我们的学习方式、言论与交流方式、生活购物方式等等,进而影响了我们的思考方式。对整体来说,整个地球变小了,资源的查找、共享都变得异常方便。网页浏览器( Browser )是一个软件程序,用于与WWW建立联结,并与之进行通信。它可以在WWW系统中根据链接确定信息资源的位置,并将用户感兴趣的信息资源取回来,对 HTML 文件进行解释,然后将文字图像显示出来,或者将多媒体信息还原出来。

本网页浏览器是采用JDIC项目提供的WebBrowser组件实现浏览器模块,包括的部分有:菜单栏模块,工具栏模块,地址栏模块,浏览器选项卡模块以及收藏夹模块。1菜单栏模块内容包括文件菜单,转到菜单,调整菜单和收藏夹菜单。主要是通过菜单栏的操作实现网页的前进,后退,停止,刷新和转到功能,还包括收藏夹的新建与整理。2。.工具栏的功能则是实现常用的操作,通过点击工具图标来实现菜单栏中所有的操作。3.地址栏模块则用来接收用户输入的网站地址,然后将该地址传给浏览器组件,呈现指定的网页。4.浏览器选项卡模块实现在同一个窗体中显示多个页面。5.收藏夹模块是本设计中最重要的一部分,包括整理收藏夹菜单和添加收藏夹菜单,可在程序运行的过程中根据用户保存的内容,填充收藏夹的内容,且在网页浏览器重新启动的情况下依旧保留有上次保存的网页。

在最初的功能模块构思中,遇到许多复杂的难题,特别是收藏夹的实现,在开始的时候,收藏夹里的内容与分类都会因为程序的关闭而丢失,一直不能解决,后面查了很多书,才知道因为他们没有被持久化。于是通过资料的学习,用Java的对象序列化技术,来实现收藏夹的持久保存。

【关键词】网页浏览器; 模块; 收藏夹;

ABSTRACT

There is no doubt that web browser has completely changed our history. For individuals, it changed our way of learning, speech and communication, life way to shop and so on, in turn affected our way of thinking. On the whole, the whole earth has become smaller and the resources to find, share, has become very convenient. Web Browser is a software program for the establishment of links with the WWW, and to communicate with it. It can determine the location of information resources according the WWW system, and take back the interest information resources of users, then interpret the HTML file, and then display the text image, or revert the Multimedia information.

The web browser is provided by JDIC Web Browser component to achieve the project browser module, including part are: menu bar module, the toolbar module, the address bar module, the browser bar module and favorite module. 1 The menu bar module includes the file menu , go to the menu, adjust menu and favorites menu. Mainly through the menu bar of the operation to achieve the page forward, backward, stop, refresh and go to features, including new favorites and order.2 Toolbar function of the operation to achieve common, by clicking on the Tools menu bar icon to realize all the operations .3. The address bar is used to receive user input module website address, and then pass the address of the browser components of a given Web page .4. module browser tab to display the same form multiple pages .5. favorites module is the most important part of the design, including the Organize Favorites menu and Favorites Folder menu, you can run the process according to the user to save the contents of the contents of fill Favorites. And restart the Web browser case still retains the last stored page.

In the initial concept of functional modules, face many complex challenges, in particular the realization of favorites, at the beginning of the favorites in the content and classification of the closing will be lost because the program, Yi Zhi can not solve, Houmian check a lot of book, before we know because they were not persistent. So learning through data using Java's object serialization technology to achieve a lasting preservation favorites.

Key words Web browser; module; Favorites

目录

第一章绪论 (1)

1.1 研究的背景 (1)

1.2 研究的现状 (2)

1.3 研究的目的与意义: (2)

1.4 研究的方法 (3)

第二章.程序开发的基础 (4)

2.1 Java技术 (4)

2.1.1 Java概述 (4)

2.1.2 java平台简介 (4)

2.1.3JDIC项目简介 (5)

2.2 实现目标 (5)

2.3开发环境 (5)

第三章.系统的总体分析与设计 (7)

3.1 需求分析 (7)

3.2 系统结构与设计分析 (7)

3.2.1 响应模式 (7)

3.2.2 结构分析 (7)

3.3 功能结构图 (8)

第四章系统功能与实现 (9)

4.1 核心技术 (9)

4.1.1 JDIC项目实现浏览器组件 (9)

4.1.2 收藏夹的保存与装载 (9)

4.1.3阻止IE打开弹出窗口 (10)

4.2菜单栏的实现 (10)

4.2.1 文件菜单 (10)

4.2.2 转到菜单 (10)

4.2.3 调整菜单 (11)

4.3 工具栏的实现 (11)

4.4 地址栏的实现 (12)

4.5 浏览器选项卡的实现 (13)

4.5.1 继承扩展浏览器组件 (13)

4.5.2 编写浏览器面板 (14)

4.5.3 编写浏览器选项卡面板 (14)

4.5.4编写浏览器组件监听器 (14)

4.6 收藏夹的实现 (14)

4.6.1 添加到收藏夹 (14)

4.6.2 整理收藏夹 (15)

第五章测试 (16)

5.1 测试与调试的基本概念 (16)

5.2 测试时间 (16)

5.3 软件测试的内容 (17)

结论............................................... 错误!未定义书签。

致谢............................................... 错误!未定义书签。参考文献.. (20)

第一章绪论

1.1 研究的背景:

1991年WorldWideWeb浏览器发布

这款由Web之父 Tim Berners-Lee 亲手设计的图形化浏览器还包含一个所见即所得 HTML 编辑器,为了避免同WWW混淆,这个浏览器后来改名为 Nexus。

1993年Mosaic发布

Internet的流行应该归功于 Mosaic,这款浏览器将Web带向了大众。诸如IE, Firefox一类的当代浏览器仍然在延用Mosaic的图形化操作界面思想。

1994年Netscape成立

Marc Andreessen带领Mosaic的程序员成立了Netscape公司,并发布了第一款商业浏览器 Netscape Navigator。

1995年IE发布,浏览器之战即将爆发

微软针对Netscape发布了他们自己的浏览器,IE,第一场浏览器之战爆发。

1996年Opera发布

Telenor是挪威最大的通讯公司,他们推出了Opera,并在两年后进军移动市场,推出Opera的移动版。

1998年Mozilla项目成立

Netscape成立Mozilla开源项目,开发下一代浏览器,后来证明,使用原有代码开发新东西是一种负担,接着他们着手从新开发。

1998年Netscape浏览器走向开源

随着同 IE 征战的失利,Netscape市场份额急剧下降,Netscape决定将自己的浏览器开源以期重整山河。

2002年IE 开始主导浏览器市场

市场份额达到95%,借助同操作系统的捆绑优势,IE赢得第一场浏览器之战。

2003年,苹果Safari浏览器登场

苹果进入了浏览器市场,推出自己的Webkit引擎,该引擎非常优秀,后来被包括Google,Nokia之类的厂商用于手机浏览器。

2004年Firefox引发第二场浏览器之战

Firefox 1.0 推出。早在 Beta 测试期间就积累了大量人气的Firefox引发了第二场浏览器之战,当年年底,Firefox已经赢得7.4%的市场份额。

2006年IE7发布

IE6发布后的第六年,迫于Firefox的压力,微软匆匆推出IE7应战,吸取了Firefox的一些设计思想,如标签式浏览,反钓鱼等。但这款浏览器现在看来并不成功。

2008年Google携Chrome参战

Google发布了他们自己的浏览器,加入这场战争。轻量,快,异常的稳固让这款浏览器成为不可轻视的一个对手。

1.2 研究的现状:

随着21世纪新时代的到来,网络越来越普及到各行各业,我们的生活,工作和学习已经和网络都有这息息相关的联系,而网页浏览器的存在无疑使我们对网络的使用更得心应手,如果说浏览器推动了网络的普及与发展,推动了信息社会和经济全球化的到来,那完全是没有任何夸张的。浏览器作为网络普及中的核心因素之一,它发展可以说是网络的发展的写照。浏览器技术的改进与更新,无疑是网络普及的重要推动力之一。

目前运行于PC机上的较受欢迎的WWW浏览器有IE,Navigator,其主要特点有:通过频道和人工输入地址来获取Web站点资源;能够将最近和最常用的网友站点添加到收藏夹河保存在历史文件夹中;提供了键入WEB地址的帮助项及表格自动完成功能;提供缓存网页的功能;更新所选择地Web站点并在空闲时浏览,支持脱机浏览功能;安全浏览Web;支持不同的脚本语言;可以外挂其它程序来支持比如多媒体播放等。而传统浏览器的局限越来越突出出来。主要体现在:网址获取能力差。一般我们通过人工输入来得到网址,这需要用户记忆网址。即浏览器提供了类似于收藏夹或书签之类的功能,也需通过手工加入网址,使用不够方便。

语言翻译功能差。由于80%以上的网站位于英语国家,使得网络信息主要以英文为主,这就给中国用户带来了不便,我们只能借助另外的软件来翻译。

信息搜索能力差。Internet上的信息不但数量巨大,而且复杂,难以快速获取有用的信息,信息的发布与检索式网路信息服务的主要内容,而浏览器并没有提供一定的搜索能力,需借助于其他的搜索引擎。

外挂程序的不足。当今浏览器的外挂程序仅限于对网友浏览的支持,如图像,动画播放等等。而用户需要的还包括文件下载上传,音乐欣赏等实用程序的支持。

缺乏个性化服务。IE浏览器虽然内核稳定,能支持多种脚本,但在打开多个窗口时,会消耗大量的系统资源,使浏览速度变慢;而Navigation兼容性太差,且都是单页浏览器,界面固定,不能随用户的喜爱而方便定制客户端界面智能化程度偏低。这是当前浏览器最大的不足,例如缺乏网页的自动分类,却反通过学习用户的配置而自动调整服务策略的能力等。

1.3 研究的目的与意义:

从各方面来说,网页浏览器都在不断的扩张,它不仅是客户的互联网软件同时正在逐渐的往服务器领域扩张和渗入。最近几年,浏览器正在逐步的进军移动设

备,除了桌面浏览器,移动电话浏览器,移动手机浏览器也越来越为人们所熟悉,我相信未来的浏览器将会出现很多新功能,会又恨多新的标准出台。

浏览器之未来展望:

1.很多Web应用程序依靠javaScript语言运行,基本所有浏览器都把JavaScript运行速度放在首位。

2.通过先进技术,浏览器让每一台电脑既成为客户端也成为服务器,从此电脑之间可以直接通过网络进行点对点互动和信息共享,再也不需要通过第三方服务器中转。

3.CSS样式和SVG等标准将提高浏览器的图形处理能力。

4.在用户的许可下,Geolocation(可设置的全局变量)技术可以让网站知晓你的确切位置。

1.4 研究的方法:

本项目采用Java技术实现网页浏览器。Java是一个广泛使用的编程语言,它基于Java虚拟机技术,从而实现跨平台。它简单,面向对象,不依赖与机器的结构,具有可移植性,安全性,并且提供了并发的机制,具有很高的性能。其次,它最大限度的利用了网络,Java的小应用程序(applet)可在网络上传输而不受CPU和环境的限制,另外,Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。项目包括菜单栏模块,工具栏模块,地址栏模块,浏览器选项卡模块和收藏夹模块。

其中重要的事浏览器选项卡和收藏夹的实现,浏览器选项卡是采用https://www.doczj.com/doc/be14494267.html,社团中的一个桌面开发组件项目JDIC项目提供的WebBrowser组件来实现。JDIC包含很多功能组件,其中WebBrowser浏览器组件可以呈现网页内容,包括JavaScript,Flash等都能正确显示,它也可以控制浏览器的后退,前进,刷新,停止和打印等操作。而收藏夹的实现则较为复杂,内容包括选择将网页保存到网络收藏夹后,建立该网页超级链接与关键字属性的映射关系,并将所述映射关系保存在服务器中;在网络收藏夹中选择希望浏览的网页的超级链接后,根据所选择网页的超级链接获取该网页超级链接与该网页关键字属性的映射关系,得到所选择网页的关键字属性,将该关键字属性作为搜索关键字查找与该网页关键字属性匹配并且有效的超级链接,根据查找到的超级链接从对应的网络服务器下载与该超级链接对应的网页并显示。

第二章.程序开发的基础

2.1 Java技术

2.1.1 Java概述

Java是一个广泛使用的编程语言,它基于Java虚拟机技术,从而实现跨平台。它简单,面向对象,不依赖与机器的结构,具有可移植性,安全性,并且提供了并发的机制,具有很高的性能。其次,它最大限度的利用了网络,Java的小应用程序(applet)可在网络上传输而不受CPU和环境的限制,另外,Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。 Java平台是一种纯软件平台,它有三个版本Java SE、JavaEE、Java ME。

JavaSE允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java 应用程序。Java SE还包含了支持Java Web服务开发的类,并为Java EE 这个版本提供基础。JavaEE下有很多流行的开发框架,像Struts、Spring、Hibernate这种流行的所谓SSH组合等。JavaME应用领域像各种移动设备和嵌入式设备,比如:手机、PDA、电视机顶盒和打印机。

2.1.2 java平台简介

Java平台版本

Java平台版本主要有:J2EE(企业版本)、J2SE(标准版本)、J2ME(迷你版本)。这三个版本有不同的用途,J2EE主要用于分布式的网络程序的开发,如电子商务网站和ERP系统;J2SE主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程。

Java平台的组成

Java平台主要是由一个compiler(编译器),一个运行环境(runtime environment),和一个核心的API组成。

1、JVM(Java虚拟机):Java程序并不是直接在本地机器的操作系统上执行,而是通过JVM解释成本地的机器语言,其优点是可以保证Java代码在Windows、Linux、Solaris等操作系统上的移植性,其代价是执行速度比C代码要慢。考虑到软件越来越庞大,而计算机硬件性能越来越快,而且WEB应用的发展,其代价是可接受的。

2、JDK(Java Development Kit):Java平台开发包;JSDK(Java 2 Software Development Kit):Java 2平台开发包。目前普遍采用J2SDK。

3、JRE(Java Runtime Environment):Java运行环境,一般情况下已集成到J2SDK中,但如果用户只是执行Java程序,而不进行Java代码的开发,则只需安装JRE。

Java环境变量的设置

安装完J2SDK之后,需要设置环境变量,方法如下:控制面板-〉高级设置-〉环境变量-〉系统变量-〉path里添加一个路径。这个路径是安装J2SDK 的bin文件夹的路径。

2.1.3JDIC项目简介

JDesktop Integration Components,或JDIC,是一个给Java开发人员提供通过交差平台API存取本地特性的包罗万象的项目。该项目由Sun的Desktop 组启动,目的是让Java应用能更好地和它们所运行的桌面环境集成。为了能从开发人员那里得到想要的特性的快速反馈,他们将JDIC做成了开源项目。尽管目前没有计划,但JDIC团队正考虑把JDIC的特征加入Java核心类库的未来版本中去。

JDIC分为五个部分和一个孵化中的项目:

桌面:为了打开、编辑和用email邮寄文件来打开桌面程序;

文件类型:设置桌面文件类型关联;

浏览器:在AWT画布上嵌入本地浏览器(Internet Explorer或者Mozilla);包装器:把Java Web Start程序转换成本地安装程序的命令行工具;

托盘API:支持系统托盘图标和弹出式菜单;

lSaverBeans:Java中的系统屏幕保护;

2.2 实现目标

本项目是网页浏览器,包括五个部分,菜单栏模块,工具栏模块,地址栏模块,浏览器选项卡模块以及收藏夹模块。

1菜单栏模块内容包括文件菜单,转到菜单,调整菜单和收藏夹菜单。主要是通过菜单栏的操作实现网页的前进,后退,停止,刷新和转到功能,还包括收藏夹的新建与整理。

2。.工具栏的功能则是实现常用的操作,通过点击工具图标来实现菜单栏中所有的操作。

3.地址栏模块则用来接收用户输入的网站地址,然后将该地址传给浏览器组件,呈现指定的网页。

4.浏览器选项卡模块实现在同一个窗体中显示多个页面。

5.收藏夹模块是本设计中最重要的一部分,包括整理收藏夹菜单和添加收藏夹菜单,可在程序运行的过程中根据用户保存的内容,填充收藏夹的内容,且在网页浏览器重新启动的情况下依旧保留有上次保存的网页。

2.3开发环境

以下版本是本次使用:

操作系统: Windows XP

Java虚拟机: JDK1.6

开发工具: MyEclipse5.5

第三章.系统的总体分析与设计

3.1 需求分析

本模块要实现的功能模块包括:菜单栏模块,工具栏模块,地址栏模块,浏览器选项卡模块以及收藏夹模块。

1.菜单栏模块内容包括文件菜单,转到菜单,调整菜单和收藏夹菜单。主要是通过菜单栏的操作实现网页的前进,后退,停止,刷新和转到功能,还包括收藏夹的新建与整理。

2.工具栏的功能则是实现常用的操作,通过点击工具图标来实现菜单栏中所有的操作。

3.地址栏模块则用来接收用户输入的网站地址,然后将该地址传给浏览器组件,呈现指定的网页。

4.浏览器选项卡模块实现在同一个窗体中显示多个页面。

5.收藏夹模块是本设计中最重要的一部分,包括整理收藏夹菜单和添加收藏夹菜单,可在程序运行的过程中根据用户保存的内容,填充收藏夹的内容,且在网页浏览器重新启动的情况下依旧保留有上次保存的网页。

3.2 系统结构与设计分析

3.2.1 响应模式

用户在地址栏输入一个URL,单击“转到”按钮,请求发出,浏览器内核进行读取识别,并通过特征提取模块进行特征比对,按照网页分类算法对网页类别库中的网页中符合的网页提取出来返回给用户。

图1 响应模式

3.2.2 结构分析

本模块设计的浏览器,有菜单栏,工具栏,地址栏,页面显示区,收藏夹。

它的主要特点有:

1基于IE内核,采用多窗口多线程工作方式,节约了系统资源,稳定性好,不会像那样因打开多窗口而使系统速度缓慢,甚至出现“程序没有相应“等现象。

2.对网页自动分类,这是它的特点。当用户在浏览网页进入一个从未到过的网站时,很容易导致迷航,用户先阅读网页才能判定该网页是否是自己所感兴趣的网页。这样,用户把大量时间和精力花费在不必要的网页上,分散了用户的注意力。

3. 提供类别导航功能。它将已分类的网站地址置入各类别中,用户可以根据自己感兴趣的主题进行访问和浏览。类别的跟新,修改,添加等维护一般由系统进行,也可由用户自己手动维护。系统可以根据类别的更改而自行调整系统的分类结果。

3.3 功能结构图

以下是本模块的功能结构图:

图2 功能结构

第四章系统功能与实现

浏览器的窗体是程序的主界面,它包括浏览指定的网站,收藏网站信息等业务。主要由菜单栏,工具栏,地址栏,浏览器选项卡和状态栏组成。

4.1 核心技术

4.1.1 JDIC项目实现浏览器组件

浏览器组件API可以让你访问几个浏览器事件以及在历史记录上的控制(向前,后退,刷新)。未来修订的API版本希望能提供更多存取浏览器和任意装载的文档的功能。

在你的应用里使用浏览器组件实在是非常容易:

import org.jdesktop.jdic.browser.*;

import https://www.doczj.com/doc/be14494267.html,.*;

import javax.swing.*;

public class BrowserTest {

public static void main(String[] args) throws Exception {

WebBrowser browser = new WebBrowser();

browser.setURL(new URL("https://www.doczj.com/doc/be14494267.html,"));

JFrame frame = new JFrame("Browser Test");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.getContentPane().add(browser);

frame.pack();

frame.setSize(500,500);

frame.setVisible(true);

}

}

正如你所看到的那样,WebBrowser对象仅仅是一个你可以把它放入一个标准的Jframe中的AWT组件。Main方法的第一行创建了一个新的WebBrowser,第二行设置了你想显示的URL。其他的代码创建了一个frame,把浏览器加入其中,并使得frame可见

记住WebBrowser是个本地AWT组件,因此你可能陷入与Swing结合的困境。混合它们的两个规则是1)不要让Swing和AWT组件重叠和2)在你的菜单上调用setLightWeightPopupEnabled(false)否则它们将消失在浏览器组件后边。

4.1.2 收藏夹的保存与装载

收藏夹模块的功能可以将正在浏览的网址添加到收藏夹中,并且提供分类,通常的做法是将收藏夹的内容存放在集合类中,如果程序关闭,收藏夹的内容和分类将丢失,因为它们没有被持久化。

将收藏夹持久化的方法有两种:

持久化到数据库

可以将收藏夹内容全部保存到数据库中,在程序关闭时,收藏夹的内容保存在数据库而不在内存中,这样可以避免数据丢失,在程序下次启动的时候,可以从数据库中读取收藏夹内容从新显示

持久化到文件中

另一种方法将收藏夹的内容保存到一个数据文件中,例如”favorite.data”,这种方法保存收藏夹数据可以节省访问数据库的开销,也可以随浏览器模块一同发布,既方便又节省资源。

4.1.3阻止IE打开弹出窗口

使用WebBrowser组件编写的浏览器模块,可以在本窗口中浏览各种信息,可以通过超级链接访问其他网页,如果某个超级连接要在新的窗体中打开网页,那么这个网页会默认使用IE或操作系统默认的浏览器打开,这就破坏了模块的外观,使本模块处于可有可无的状态。因此必须拦截这些需要在新窗体显示的网页信息,本模块继承了WebBrowser组件实现了浏览器组件的Browser类,它从写了父类的willOpenWindow()方法,在有需要显示在新窗体的网页信息时,该方法会创建新的选项卡显示这个网页。

4.2菜单栏的实现

浏览器模块的菜单栏几乎容纳了所有功能的操作连接,它用于整个浏览器模块的导航,快速方便的执行浏览操作,例如前进,后退,刷新等。

4.2.1 文件菜单

文件菜单包括”设置主页”,”打印”,”退出”3个菜单项,其中”设置主页”将用户输入的网址信息创建为URL对象。如果创建URL对象时抛出异常,说明URL格式不标准,将以对话框的形式提示用户URL格式非法,当输入格式正确时,程序将URL对象序列化到收藏夹得数据文件中。

单击打印菜单时,将调用工具栏上”打印”按钮的doClick()方法,执行按钮的鼠标单击操作,程序会执行按钮的时间处理代码。

单击菜单栏的“退出”菜单项时,菜单项的事件监听器将调用业务方法完成退出命令。在业务方法中执行了System类的exit()方法退出Java虚拟机,从而终止程序运行。

4.2.2 转到菜单

转到菜单包含了浏览器的控制命令,这些命令包括”主页”,”前进””后退””停止””刷新”。这些控制命令,在菜单栏中也提供了相应的操作按钮,为减少代码重复,本模块在这些菜单栏的事件处理中直接调用工具栏相应按钮的doClick()方法,执行按钮的业务代码。

// 停止菜单项的业务

private void stopMenuItemActionPerformed(java.awt.event.ActionEvent evt) {

stopButton.doClick(); // 执行停止按钮的单击方法

}

// 刷新菜单项的业务方法

private void refreshMenuItemActionPerformed(java.awt.event.ActionEvent evt) {

refreshButton.doClick(); // 执行刷新按钮的单击方法

}

// 后退菜单项的业务方法

private void backMenuItemActionPerformed(java.awt.event.ActionEvent evt) {

backButton.doClick(); // 执行后退按钮的单击方法

}

// 前进菜单项的业务方法

private void forwardMenuItemActionPerformed(java.awt.event.ActionEvent evt) {

forwardButton.doClick(); // 执行前进按钮的单击方法

}

// 打印菜单项的业务方法

private void printMenuItemActionPerformed(java.awt.event.ActionEvent evt) {

printButton.doClick(); // 执行主页按钮的单击方法

}

4.2.3 调整菜单

本模块的网页浏览器部分布置在一个选项卡组件中,选项卡的标签名称为网页的标题命名,这样用户可以创建多个选项卡浏览更多的网站。

4.3 工具栏的实现

工具栏用于执行常用的操作,网页浏览器模块的控制命令使用最频繁,因此将浏览器的控制命令提取到工具栏中。工具栏上的每个按钮都设置了文本提示,每个按钮都添加了单独的事件监听器,在不同的事件监听器中调用处理该按钮业务的方法。

编写各个按钮的事物处理方法,这些业务处理方法被不同按钮的事件监听器调用。浏览器的控制按钮的业务逻辑,基本通过调用Browser浏览器组件的方法实现,例如print()方法可以执行打印任务,

// 后退按钮的事件处理方法

private void backButtonActionPerformed(java.awt.event.ActionEvent evt)

{

Browser browser = getSelBrowser();

if (browser.isBackEnabled()) { // 如果后退操作可行

browser.back(); // 执行后退

}

}

// 停止按钮的事件处理方法

private void stopButtonActionPerformed(java.awt.event.ActionEvent evt) {

Browser browser = getSelBrowser();

browser.stop(); // 执行停止操作

}

// 前进按钮的事件处理方法

private void forwardButtonActionPerformed(java.awt.event.ActionEvent evt) {

Browser browser = getSelBrowser();

if (browser.isForwardEnabled()) { // 如果前进操作可行

browser.forward(); // 执行前进操作

}

}

// 刷新按钮的事件处理方法

private void refreshButtonActionPerformed(java.awt.event.ActionEvent evt) {

Browser browser = getSelBrowser();

browser.refresh(); // 执行刷新操作

}

// 主页按钮的事件处理方法

private void homePageButtonActionPerformed(java.awt.event.ActionEvent evt) {

Browser browser = getSelBrowser();

browser.setURL(homePage); // 设置浏览器当前网址

}

4.4 地址栏的实现

地址栏是网页浏览器的重要功能,它接收用户输入的将要访问的网站地址,然后将该地址传送给浏览器组件,呈现指定的网页内容。网页浏览器模块的地址

栏包含输入网站URL地址的文本框和一个执行浏览业务的“转到”按钮。当用户在地址栏的地址文本框输入网站地址并单击右侧的“转到”按钮时,它下面的浏览器选项卡将创建一个新的选项卡,并在选项卡中放置一个浏览器组件显示新的网页内容。

jLabel1.setText("地址:"); // 地址标签addressBar.add(jLabel1, BorderLayout.WEST); // 添加标签到地

址栏

address.setText("http://"); // 设置地址文本框内容

addressBar.add(address, BorderLayout.CENTER); // 添加地址文本框到地址栏

goButton.setText("转到"); // 设置转到按的文本goButton.setFocusable(false);

goButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER) ;

goButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); // 添加转到按钮的事件监听器,当单击转到按钮时,执行业务方法

goButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { goButtonActionPerformed(evt); // 调用转到按钮的业务方法}

});

addressBar.add(goButton, BorderLayout.EAST); // 添加转到按钮到地址栏

4.5 浏览器选项卡的实现

以前的浏览器都是单个窗体的软件,在每次需要同时浏览不同的网站或者在新窗口显示网页的情况下,都需要重新启动或弹出一个浏览器软件来显示指定的网页内容。因此本模块使用浏览器面板作为所有浏览器组件的容器:

4.5.1 继承扩展浏览器组件

由于网页的超级链接或JavaScript脚本可以在新的浏览器窗口中显示内容,而新建立的浏览器窗体会使用默认的浏览器打开网页,因此本模块必须继承WebBrowser类来编写自己的浏览器组件类Browser。

这样就可以重写父类的willOpenWindow()方法拦截弹出新窗体显示网页内容的事件,然后再该方法中使用自己的事件,在选项卡面板中创建浏览器组件显示网页。

4.5.2 编写浏览器面板

将扩展的Browser浏览器组件封装在一个面板中实现浏览器面板,这个面板将被添加到存放浏览器的选项卡面板中.浏览器面板添加了Browser浏览器组件的实例对象,并且为浏览器组件添加了事件监听器。

4.5.3 编写浏览器选项卡面板

本模块的选项卡面板用于存放浏览器组件,使浏览器支持选项卡界面创建选项卡时为面板添加鼠标单击事件,在用户单击选项卡的标签时执行业务方法。另外,还设置了选项卡面板的模型对象,包括选项卡的选择事件的处理方法。CreateBrowser()和getSelBrowser()方法分别用于在选项卡面板创建浏览器面板和获取当前选择的面板中的浏览器组件实例。

本模块使用JDIC类库来实现浏览器界面,该类库可以从https://www.doczj.com/doc/be14494267.html,/地址下载,在IE地址栏输入该网址后,浏览器将显示JDIC的项目首页。下载该类库后是一个压缩文件,将该文件解压缩并将类库的JAR文件和EXE文件添加到Java程序的类路劲中,DLL文件需要放到运行java 程序的当前路径,如果是Eclipse的项目中使用该类库,那么DLL文件需要放到项目的根文件夹中,与src同级。

4.5.4编写浏览器组件监听器

在编写浏览器面板组件时,在面板中创建了浏览器组件,同时也为该组件添加了事件监听器。

4.6 收藏夹的实现

收藏夹是浏览器不可缺少的功能,它记录上网时常用的,经典的网站地址。

4.6.1 添加到收藏夹

在浏览器模块的主窗体上单击”收藏夹”/”添加到收藏夹”菜单项,将启动添加收藏夹功能,该功能能将当前浏览器访问的网站地址添加到收藏夹中,日后可以从收藏夹中直接选择浏览器指定的网址。

添加收藏夹功能的实现步骤如下:

1 编写”添加到收藏夹”菜单项的业务代码,这个方法将有菜单项的事件监听调用,方法内部获取了选项卡面板当前的选项卡索引,然后使用所有获取选项卡的标题,使用该标题创建了”添加到收藏夹”对话框的实例,把其余的工作交由该对话框实现。

2在”添加到收藏夹”对话框中编写初始化收藏夹树组件的方法,该方法将在对话框的构造方法中被调用,它将调用loadMenu()方法添加收藏夹菜单的内容。

3编写装载收藏夹菜单内容的loadMenu()方法,该方法使用递归算法遍历收藏夹的数据集合对象,从这个集合对象中装载收藏夹的所有内容到”收藏夹”菜

单中。

4 编写”确定”按钮的业务处理方法,该方法在用户输入名称标识并单击按钮时被”确定”按钮的事件监听器调用,它将完成从读取用户输入名称标识到保存网站地址到收藏夹的全过程。

4.6.2 整理收藏夹

整理收藏夹的实现比较复杂,它的树组件要显示的收藏夹内容包括文件夹和收藏的网址信息,而且可以对这些信息进行维护和移动操作。其中包括”创建文件夹”,”重命名”,”删除”操作。

实现过程如下:

1 编写”整理收藏夹”菜单项的业务处理方法,该方法将在单击该菜单时由菜单项的时间监听器调用,方法的实现非常简单,因为所有业务都由”整理收藏夹”对话框完成。

2 编写”整理收藏夹”对话框的构造方法,在构造方法中分别调用初始化对话框界面的方法和初始化收藏夹树组件的方法。

3编写初始化树组件的方法,该方法将调用loadFavoriteNode()方法装载树节点内容,

4 编写装载树组件节点内容的方法,该方法使用了递归方法,原因是要遍历的内容包括子节点的嵌套。

6 编写”重命名”按钮的事件处理方法,作为维护操作重命名是必不可少的,特别是收藏夹中的文件夹。如果没有重命名,则需要删除文件,重新建立;如果文件夹中包含大量的收藏信息,会损失很多资源。单击”重命名”按钮时,将在事件监听器中调用该方法完成命名操作。

7 编写”删除”按钮的事件处理方法,该方法将在”删除”按钮的事件监听器中被调用。

8 编写”移动到”按钮的事件处理方法,该方法用于移动收藏选项到其他文件夹中,其按钮的事件监听器将调用该方法。

第五章测试

5.1 测试与调试的基本概念

软件测试是整个系统开发过程中一个重要环节,是成功开发本系统的重要保证。软件测试阶段的主要任务是发现并排除在分析、设计、编码各阶段中产生的各种类型的错误,以得到可使用的软件系统。

常用的软件测试方法有两大类:静态测试方法和动态测试方法。

静态测试方法是程序远普遍采用的一种方法,其内容主要是通过人工模拟软件系统的执行方式,以代码会审、走查、办公室检查的形式分析或核查系统的功能实现、编码过程的正确性。动态测试方法是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。

按照通常的软件系统测试,可以分别进行单元测试、集成测试、确认测试、系统测试,最后进行验收测试,即由用户通过试用系统而进行测试,检验系统的可用性及与用户配合的程度。

调试是软件开发过程中最艰巨的脑力劳动,调试开始时,软件开发者仅仅面对着错误的征兆,然而在问题的外部现象和内在原因之间往往并没有明显的联系,在组成程序的密密麻麻的元素中,每一个都可能是错误的根源。如何能在浩如烟海的程序元素中找到有错误的那个(或几个)元素,这是调试过程中最关键的技术问题。本设计中调试的方法主要是设置断点跟踪。使用断点跟踪可以找到程序的出错位置,缩小查找错误的范围,提高调试的效率。调试的任务是及时改正测试过程中发现的软件错误。具体地说,调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始,首先确定错误的准确位置,也就是找出哪个模块或哪个语句引起的错误。然后仔细研究推断代码以确定问题的原因,并设法改正。现阶段己研究出一些帮助调试的技术,主要有输出存储器内容、打印语句和自动工具。

5.2 测试时间

本系统的测试分为以下几个阶段进行:

第一阶段:根据需求分析划定软件中要测试的功能和性能的范围,确定测试的内容。

第二阶段:分模块对系统中的各模块进行测试,对需求分析中各模块的功能和性能及用户的特殊需求进行测试,记下各模块的所有的问题,及时解决。

第三阶段:在模块测试的基础上将各模块拼接进行整体功能和性能的测试。

第四阶段:综合测试。

网页设计大作业

网页设计与制作报告书 课程名称:网页设计与制作 报告题目:几米的空间 专业班级:旅管1002班 学号:100104110221 姓名:杨玉颖 指导教师:胡一波

目录 一、................................. 开发背景 二、................................. 网页设计技巧 三、................................. 网站结构 四、................................. 应用工具方案 五、................................. 频道栏目划分 六、................................. 测试 七、................................. 周期与成本估算 八、................................. 结论

摘要: 在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。 关键字:网页制作;制作方法;设计要素;网页测试

一、网页制作开发背景 Dreamweaver以其功能强大、容易上手、界面亲切而著称。它采用所见即所得的方式编辑网页,利用它可以轻松的组织、编辑网页并将其发布到指定的站点上,而且在发布之后还能对更新情况进行监控以更新站点的内容。现在流行的网页制作软件有很多,如Macromedia 公司的Dreamweaver、微软公司的Dreamweaver、还有Adobe Pagemill 3.0--制作多框架,表单和Image map 图像的网页工具、Netscape等等。其中Dreamweaver更以其功能强大、容易上手、界面亲切而著称。它采用所见即所得的方式编辑网页,利用它可以轻松的组织、编辑网页并将其发布到指定的站点上,而且在发布之后还能对更新情况进行监控以更新站点的内容。工具准备好了,可根据你的个人喜好来选择一些素材,如图片、喜欢的文章等。 二、网页制作设计技巧 首先,我们来看一下创建一个只包含一个网页的站点。选择“文件”菜单的“新建”选项,单击“站点”命令,这时新建站点对话框就弹出来了,在“指定新站点位置”文本框中输入新站点的位置,单击“只有一个网页的站点”图标,单击“确定”按钮。这就建立好站点了,我们现在来看一下新的站点里有什么,单击“视图”工具条的“文件夹”按钮。在文件夹列表里有一个网页文件,名字叫做“index.htm”。我们知道,每

javamath类常用方法

例如求平方根的(n),求a的b次方(a, b),求绝对值(n)等很多。下面是一些演示。publicclassMathTest { publicstaticvoidmain(String[]args) { intn=16; ? 3)); ? ? } } publicclassMathDemo{ publicstaticvoidmain(Stringargs[]){ /** *abs求绝对值 */ 的时候会取偶数 */ // // // // // // // // // // /** *round四舍五入,float时返回int值,double时返回long值 */ //10 //11 //11 //11 //-10 //-11 //-11 //-10 } }

函数(方法) 描述 IEEEremainder(double,double) 按照IEEE754标准的规定,对两个参数进行余数运算。 abs(inta) 返回int值的绝对值 abs(longa) 返回long值的绝对值 abs(floata) 返回float值的绝对值 abs(doublea) 返回double值的绝对值 acos(doublea) 返回角的反余弦,范围在到pi之间 asin(doublea) 返回角的反正弦,范围在-pi/2到pi/2之间 atan(doublea) 返回角的反正切,范围在-pi/2到pi/2之间 atan2(doublea,doubleb) 将矩形坐标(x,y)转换成极坐标(r,theta) ceil(doublea) 返回最小的(最接近负无穷大)double值,该值大于或等于参数,并且等于某个整数cos(double) 返回角的三角余弦 exp(doublea) 返回欧拉数e的double次幂的值 floor(doublea) 返回最大的(最接近正无穷大)double值,该值小于或等于参数,并且等于某个整数log(doublea) 返回(底数是e)double值的自然对数 max(inta,intb) 返回两个int值中较大的一个 max(longa,longb) 返回两个long值中较大的一个 max(floata,floatb) 返回两个float值中较大的一个 max(doublea,doubleb) 返回两个double值中较大的一个 min(inta,intb) 返回两个int值中较小的一个 min(longa,longb) 返回两个long值中较小的一个 min(floata,floatb)

JSP程序设计期末大作业

JSP程序设计期末大作业 1.网站的运行环境 在这次大作业中,我使用的软件是NetBeans IDE 8.0和MySQl,(额外使用了名为Navicat for MySQL的辅助性软件,主要是更方便的测试表的内容) 2.设计思路 这次的网页包括三个三个主页面。 存放登录代码的Pnl1.jsp, 存放主静态页面的pnl3.jsp存放留言信息的,liuyanban.jsp。 以及,存放身份验证的Pnl2.jsp,显示此次留言的liuyan.jsp,修改留言的update.jsp,删除留言的delete.jsp。 3.网站功能模块 4.核心技术 4.1jsp JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1]是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP 文件,后缀名为(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。 它实现了Html语法中的java扩展(以<%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。 Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet 和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 4.2HTML 超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准, 它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果. 4.3CSS 随着HTML的成长,为了满足页面设计者的要求,HTML添加了很多显示功能。但是随着这些功能的增加,HTML变的越来越杂乱,而且HTML页面也越来越臃肿。于是CSS便诞生了。 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。 CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。 4.4MySQL ySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属 于Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。 MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL所使用的SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL 作为网站数据库。

JAVA中常用类的常用方法

JAVA中常用类的常用方法 一、类 1、clone()方法 创建并返回此对象的一个副本。要进行“ 克隆” 的对象所属的类必须实现. Cloneable接口。 2、equals(Object obj)方法 功能:比较引用类型数据的等价性。 等价标准:引用类型比较引用,基本类型比较值。 存在特例:对File、String、Date及封装类等类型来说,是比较类型及对象的内 容而不考虑引用的是否为同一实例。 3、finalize()方法 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 4、hashCode()方法 返回该对象的哈希码值。 5、notify()方法 唤醒在此对象监视器上等待的单个线程。 6、notifyAll()方法 唤醒在此对象监视器上等待的所有线程。 7、toString()方法 返回该对象的字符串表示。在进行String与其它类型数据的连接操作时,自动调用toString()方法。可以根据需要重写toString()方法。 8、wait()方法 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。 二、字符串相关类 String类 charAt(int index) 返回指定索引处的 char 值。 compareTo(String anotherString) 按字典顺序比较两个字符串。 compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。 concat(String str) 将指定字符串连接到此字符串的结尾。 endsWith(String suffix) 测试此字符串是否以指定的后缀结束。 equals(Object anObject) 将此字符串与指定的对象比较。 equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比 较,不考虑大小写。 indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 indexOf(String str) 返回第一次出现的指定子字符串在此字符串中的索引。 lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。 length() 返回此字符串的长度。 replace(char oldChar, char newChar)

电科19年12月考试《网页设计与制作》期末大作业参考答案

19年12月考试《网页设计与制作》期末大作业-0001 试卷总分:98 得分:98 一、单选题 (共 20 道试题,共 80 分) 1.以下HTML代码,判断正确的是()。

12345678
A.第2、3行应加入……. B.没有错误 C.
错了 D.“button”双引号错了(应为单引号) 答案:A 2.数据库的基本操作是()。 A.编,删,改,查 B.增,删,改,查 C.增,删,加,查 D.增,删,写,查 答案:B 3.表示() A.粗体 B.斜体 C.下划线 D.上标 答案:A 4.插入 Javacript 的正确位置是? A. 部分 B.文档的顶部 C. 部分和 部分均可 D. 部分 答案:C 5.引用名为 "xxx.js" 的外部脚本的正确语法是? A.