浏览器的设计与实现.doc
《浏览器的设计与实现.doc》由会员分享,可在线阅读,更多相关《浏览器的设计与实现.doc(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学校代码: 10128学 号: 040201123 本科毕业设计说明书题 目:浏览器的设计与实现学生姓名:任飞学 院:信息工程学院系 别:计算机系专 业:计算机科学与技术班 级:计算机04-1指导教师:赵志燕 讲师年金波 工程师二 八 年 六 月内蒙古工业大学本科毕业设计说明书摘 要随着网络的不断发展,网页浏览器作为上网的所必需的软件之一,已经得到了广泛地应用。在IE独霸一方的背景下,国内外各式各样的浏览器软件都如雨后春笋般孕育而生。网页浏览器的开发与应用更是成为了计算机领域近年来的一大热点。本文围绕着浏览器的编程与开发,讲述了在JDK5.0中进行浏览器开发的一些技术和笔者的一些心得,着重讲解
2、了笔者在毕业设计中所实现的一个浏览器程序MiniBrower。本文用软件工程的开发过程,详细论述了浏览器的分析、设计及代码实现,最终实现一个具有能同时浏览多个网页,可查询历史浏览记录,可以实现打开和保存网页,超链接监听并响应,和对非法网站的过滤等基本功能的浏览器。 本文以一个实际运作的浏览器 MiniBrowser 为主轴介绍浏览器的设计理念与方法,同时讲述浏览器中各个模块如何互相协同运作,来完成一个呈现网页的工作。HTML词法分析是本文着重讨论的技术问题,给出了详尽的数据结构,程序流程,并且还介绍了一些基于Java的HTML解析器。另外,Java Swing技术也是本文介绍的浏览器所使用的一
3、种主要的技术,通过使用各个组件,并增加监听器和事件处理等操作,最终形成一个具有一定事物处理能力的浏览器的界面部分。关键字:浏览器;Java Swing;HTML词法分析;事件 AbstractWith the unceasing development of network, the Homepage Browser, which becomes one of the essential software for surf online, has already obtained widely application. Under the leading position of IE, all
4、 kinds of domestic and foreign browser software have appeared like mushroom growth breeding lives. The homepage browsers development and the application have become a computer domain big hot spot in recent years.This article revolves Browsers programming and development, narrated some technologies a
5、nd authors attainments of carrying the browser in JDK5.0 development, explained browser procedureMiniBrower which emphatically in the achievement of graduation project.This article uses software engineerings performance procedure, elaborated Browsers analysis, design and code achievement, finally ac
6、hieved the Browser which has simultaneously glances over many homepages. It can inquire the history to glance over the record, realize opens and preserves the homepage, the ultra connection monitors and responds, with to illegal website filtration and so on. This article take actual operations brows
7、erMiniBrowser as the main axle,introduced browsers design idea and method, simultaneously narrated how each module does coordinate the operation mutually in the browser, completes one to present the homepage the work. The HTML lexical analysis is the technical question which discusses emphatically,
8、has given the exhaustive construction of data, the procedure flow, and also introduced some based on the Java HTML revolver. One kind of main technology which moreover, this article is also introduces the Swing technology of JAVA, through uses each module, and increases operations and so on monitor
9、and event processing, final had certain thing handling ability browsers contact surface part to form. Key words: Browser;Java Swing; HTML lexical analysis; Event目 录引 言1第一章 绪 论21.1目前浏览器产品的发展现状21.2MiniBrowser浏览器的组成和各部份功能说明31.2.1 词法分析31.2.2语法分析31.2.3 GUI及软件界面41.2.4布局算法41.3开发的前期策划61.3.1平台的选取61.3.2确定要实现的
10、基本功能6第二章 开发工具及开发技术82.1面向对象软件工程概述82.2 Eclipse简介92.3 Java Swing概述103.1 HTML概述133.2 HTML词法分析器Bit Token的组成及其功能133.3数据结构143.4算法153.4.1 基本算法153.4.2词法分析的结果163.5布局183.6几种基于JAVA的HTML Parser18第四章 系统分析204.1需求分析204.1.1 功能需求204.1.2其他需求214.1.3其他说明214.2 总体设计224.2.1设计目的224.2.2环境说明224.2.3子系统224.2.4实现功能的设计244.2.5使用To
11、mcat访问本地文件264.3详细设计274.3.1设计目的274.3.2功能模块的实现274.3.3系统模型284.3.4开发环境304.3.5关于JEditorPane的使用说明304.4编码314.5测试314.5.1测试目的314.5.2测试环境324.5.3 测试用例32结 论36参考文献38谢 辞40内蒙古工业大学本科毕业设计说明书引 言当前,信息化浪潮正在全球范围内兴起,一个以计算机网络为核心的信息时代正向我们走来。在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,从而倍受人们的重视,而互联网上信息的查找又要通过浏览器的浏览来实现,所以本文通过对
12、当下流行的浏览器的模拟设计和实现来让大家对网络及网络资源的认识,以及浏览器的各个功能的实现有一个大概的认识。浏览器是一个基于C/S架构的应用软件,其最基本的功能,就是能够将因特网上的众多资源,例如网页上的内容与信息或是在线服务等,呈现给使用者并让使用者得以使用存在于因特网上的各项服务。因此透过网络传输数据对浏览器来说,是相当重要且必备的一项能力。浏览器作为重要的系统应用软件是不可或缺的。但目前,浏览器产品的市场被少数国外大公司垄断,众多的小型浏览器也尚处于发展期,而国内的自主技术的浏览器更屈指可数,刚刚进入实用阶段。迫切需要更多的人来关注浏览器技术,开发中国自主知识产权的浏览器产品。为了支持跨
13、平台访问网页的需求,本课题完成跨平台的浏览器开发,实现个人能同时浏览多个网页,可查询历史浏览记录,对非法网站的过滤等功能的浏览器。本文阐述了浏览器开发的关键技术,并详细说明MiniBrowser的实际开发过程,和技术细节。第一章 绪 论1.1目前浏览器产品的发展现状 常见的桌面浏览器有微软的Internet Explorer,网景的Netscape,开放源码的Mozilla FireFox,以及opera,mosaic,Hotjava,字符模式的lynx等。其中IE,Opera已有嵌入式版本,以上的大多数浏览器均有跨多平台的版本。这些桌面型浏览器功能参差不齐,但大多都能实现基本的浏览功能。其中
14、IE与Netscape对HTML页面的显示效果均堪称完美(对于XML,WML等标准的网页浏览,本文不予讨论)。与完美的浏览效果,功能丰富,支持多种媒体格式和视音频插件等优点形成对立的是,这些浏览器庞大的体积和对机器配置的高要求;这也是桌面浏览器和嵌入式浏览器最大的区别。另外,桌面型浏览器通常是基于通用的操作系统,用于桌面电脑如PC机、MAC机等;而嵌入式浏览器通常基于专用系统。需要指出的是,在网上常看到的一些浏览器,如Netcaptor,魔装网神,腾讯,飓风,Fantasia,金山WPS office的浏览器等等,均为使用IE内核的浏览器,使用了多页面多线程的方式,降低了系统资源的耗费,方便了
15、浏览,但软件本身没有使用多少技术,可以用Delphi,VB等工具轻易开发出来(如果不要求完善的功能,只需简单到拖一个IE控件过去就行了),这也体现了微软的COM+及ActiveX技术的强大。1.2MiniBrowser浏览器的组成和各部份功能说明1.2.1 词法分析HTML(HyperText Markup Language,超文本标记语言)词法分析是浏览器设计的基础环节之一,也是整个设计过程中重要的前端工作,其数据结构的拟定与接下来的语法分析和布局算法密切相关,词法分析的效率与准确性、容错性也关系到整个浏览器设计的质量。MiniBrowser采用了JDK(Java Development K
16、it,Java开发包)附带的HTML解析器解析从服务器返回的HTML数据。1.2.2语法分析在大型的浏览器中,语法分析通常是独立的模块,但在某些小型的浏览器中,语法分析通常是与布局混合在一起的,即一边进行语法分析,一边布局,不设立相应的数据结构来存储语法分析的结果。本文所讲述的MiniBrowser也是采用这种设计思想。另外,语法分析对布局的算法有直接的指导意义。1.2.3 GUI及软件界面浏览器无疑是一个图形界面的大需求者,选择好的GUI(Graphics User Interface,图形用户界面)环境实属不易,为了能够实现专有的功能,浏览器开发者往往还要对基础的GUI库进行包装、改写,甚
17、至写自己的控件。所有这些,是需要有专业的GUI库开发经验的专职人员来完成。GUI的功劳第一在于软件的操作界面,如窗口、菜单、工具条、滚动条等。第二在于主浏览窗体中的图形元素的输出(通常以自画控件的方式)。前者通常直接使用GUI库中的已有控件,编程难度很小,后者主要利用基本的点线函数,编程难度比较大。在MiniBrower中使用Java Swing技术编写浏览器的图形界面,而做图形界面首先要考虑的就是选择一个合适的布局管理器。与VB不同,JDK没有表单设计器,需要通过代码来定制布局管理器来放置用户界面组件所在的位置。1.2.4布局算法本文中的布局应理解为界面输出前的预演和处理位置等信息的算法,而
18、不是具体的画图和界面输出。布局算法的好坏直接关系到界面的输出效果,但布局算法也是要根据GUI所能实现的输出效果来设计的,所以,GUI往往成为系统的瓶颈,如果GUI提供的支持有限,即使有再好的布局算法,也是纸上谈兵,无用武之地。在Swing中有以下几种简单的布局管理器:(1)FlowLayout流式布局管理器FlowLayout是最简单的布局管理器,按照组件的添加次序将它们从左到右地放置在容器中。当到达容器边界时,组件将放置在下一行中。(2)BorderLayout边界布局管理器BorderLayout为在容器中放置组件提供了一个稍微复杂的布局方案。BorderLayout把容器分为五个区域:东
19、、南、西、北和中。东占据容器的右侧,南占据容器的下侧,以此类推。(3)GridLayout网格布局管理器GridLayout将容器分割成许多列和行,组件被填充到每个网格中。添加到容器中的组件首先放置在左上角的网格中,然后从左到右放置其他组件,直至占满该行的所有网格,接着继续在下一行中从左到右放置组件。(4)CardLayout卡片式布局管理器CardLayout将界面看作一系列的卡片,在任何时候只有其中一张卡片是可见的,这张卡片占据容器的整个区域。当某个容器被创建后,就会有一个默认的布局管理器。Window、Frame和Dialog的默认布局管理器是BorderLayout,Panel和App
20、let的默认布局管理器是FlowLayout。可以调用容器的setLayout()方法来设置容器的布局管理器。11.3开发的前期策划以下的工作均是建立在大量的调查基础上的,是浏览器开发前期准备工作所解决的问题。1.3.1平台的选取目前的商业化嵌入式操作系统功能完善,但使用费用高昂,使用Linux内核的嵌入式操作系统不仅功能强大,便于开发移植,而且费用低廉,基于Linux的软件系统已日渐成熟,也有相应的窗口系统可以使用,使用PC上的Linux来进行浏览器开发,是再好不过的了,软件从一台PC移植到另外一台设备只需更改配置信息,重新编译一下就可以了(前提是使用的函数库、开发包具有JDK1.5或更高的
21、版本)。1.3.2确定要实现的基本功能鉴于对浏览器开发难度的充分考虑,以及现有人员的水平,拟定实现以下功能,以及需要考虑但暂不予实现的功能。需要实现的包括:(1) 界面:包括窗口,菜单,输入框,工具条,滚动条等的支持。(2) 实现简单网页的布局:实现对简单网页的查看。(3) 支持基本IO(Input/Output,输入/输出)。(4) 支持对非法网站的过滤。需要考虑的功能:(1) JSP(Java Server Page,Java服务页面)支持(2) 汉字支持(3) Java Script的支持(4) 表单支持(5) 页面元素的消息响应第二章 开发工具及开发技术2.1面向对象软件工程概述 软件
22、工程是一门研究如何用系统化、规范化、产业化等工程原则和方法实施软件开发和维护的学科。1968年秋季,NATO的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程(Software Engineering)这个概念。到今年,软件工程整整走过了33年的历程。软件研究人员不断探索新的软件开发方法,至今已形成八类软件开发方法,例如最早的Parnas方法。但这一方法不能独立使用,只能作为其它方法的补充。 软件开发的面向对象方法于20世纪60年代后期提出,到20世纪90年代前半期,面向对象软件工程成为开发人员的首选范型。 面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浏览器 设计 实现
限制150内