ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:355.71KB ,
资源ID:29479250      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29479250.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(浏览器的设计与实现.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

浏览器的设计与实现.docx

1、浏览器的设计与实现 本科毕业设计说明书题 目:浏览器的设计与实现学生姓名:任飞学 院:信息工程学院系 别:计算机系专 业:计算机科学与技术班 级:计算机04-1指导教师:赵志燕 讲师年金波 工程师二 八 年 六 月摘 要随着网络的不断发展,网页浏览器作为上网的所必需的软件之一,已经得到了广泛地应用。在IE独霸一方的背景下,国内外各式各样的浏览器软件都如雨后春笋般孕育而生。网页浏览器的开发与应用更是成为了计算机领域近年来的一大热点。本文围绕着浏览器的编程与开发,讲述了在JDK5.0中进行浏览器开发的一些技术和笔者的一些心得,着重讲解了笔者在毕业设计中所实现的一个浏览器程序MiniBrower。本

2、文用软件工程的开发过程,详细论述了浏览器的分析、设计及代码实现,最终实现一个具有能同时浏览多个网页,可查询历史浏览记录,可以实现打开和保存网页,超链接监听并响应,和对非法网站的过滤等基本功能的浏览器。 本文以一个实际运作的浏览器 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 kinds of domestic and foreign b

4、rowser 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 and authors attainments of carryi

5、ng 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 achieved the Browser which has sim

6、ultaneously 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 browserMiniBrowser as the main axle,i

7、ntroduced 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, has given the exhaustive constru

8、ction 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 and event processing, final had

9、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确定要实现的基本功能 6第二章 开发工具及开发技术 82.1面

10、向对象软件工程概述 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 Parser 18第四章 系统分析 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使用Tomc

11、at访问本地文件 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已有嵌入式版本,以上的大多数浏览器均有跨多平台的版本。这些桌面型浏览器功能参差不齐,但大多都能实现基本的浏览功能。其中IE与

14、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 Kit,

16、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和Applet

20、的默认布局管理器是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年代前半期,面向对象软件工程成为开发人员的首选范型。 面向对象

23、方法是一种自底向上和自顶向下相结合的方法,它以对象建模为基础,不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。OO技术在需求分析、可维护性和可靠性这三个软件开发的关键环节和质量指标上有了实质性的突破。2面向对象方法的特点有:(1)自底向上的归纳(2)自顶向下的分解(3)基础是对象模型(4)需求分析彻底(5)可维护性大大改善2.2 Eclipse简介Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件和组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Dev

24、elopment Tools,JDT)。虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclip

25、se 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。Eclipse采

26、用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件;不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。 Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。 已有的分离的插件已经能够支持C/C+(CDT)、Perl、Ruby,Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到 现有环境中,例如配置管理,而决不仅仅限于支持各

27、种编程语言。32.3 Java Swing概述在java 1.0刚刚出现的时候,包含了一个用于基本GUI程序设计的类库,Sun将它成为抽象窗口工具箱(Abstract Window Toolkit,AWT)。基本AWT库采用将处理用户界面元素的任务委派给每个目标平台(Windows、Solaris等等)的本地GUI工具箱的方式,由本地GUI工具箱负责用户界面的元素的创建和动作。例如,如果使用最初的AWT在Java窗口中放置一个文本框,就会有一个底层的“对等体”文本框,用它来实际地处理文本输入。从理论上说,结果程序可以运行在任何平台上,但观感(look and feel)的效果却依赖于目标平台。

28、 对于简单的应用程序来说,基于对等体方法的效果还是不错的,但是,要想编写依赖于本地用户界面元素的高质量、可移植的图形库就会显现出缺陷了。例如,菜单、滚动条和文本域这些用户界面元素,在不同的平台上,操作行为存在着一些微妙的差别。因此,要想给予用户一致的、可预见性的界面操作方式是相当困难的。而且,有些图形环境并没有像Windows或Macintosh这样丰富的用户界面组件集合。这也就将基于对等体的可移植库限制在了一定的范围内。其结果是使AWT构建的GUI应用程序看起来没有Windows或其他应用程序显示的那么漂亮,也没有提供那些平台用户所认知的功能。更加糟糕的是,在不同平台上的AWT用户界面库中存

29、在着不同的Bug。 1996年,Netscape创建了一种称为IFC(Internet Foundation Class)的GUI库,它采用了AWT完全不同的工作方式。它将按钮、菜单这样的用户界面元素绘制到空白窗口上,而对等体只需要创建和绘制窗口。因此,Netscape的IFC部件在程序运行的所有平台上的外观和动作都一样。Sun和Netscape合作完善了这种方式,创建了一个名为Swing的用户界面库。Swing可作为Java 1.1的扩展部分使用,现已成为JDK 1.2标准库的一部分。 现在,Swing是不对等基于GUI工具箱的正式名字。它已是Java基础类库(Java Foundation

30、 Class,JFC)的一部分。完整的JFC十分庞大,其中包含的内容远远大于Swing GUI工具箱。JFC特性不仅仅包含了Swing组件,而且还包含了一个可访问的API、一个2D API和一个可拖拽的API。当然,在用户屏幕上显示基于Swing用户界面的元素要比显示AWT的基于对等体组件的速度慢一些。但对于任何一台现代的计算机来说,微小的速度差别无妨大碍。另外,由于下列几点无法抗拒的原因,驱使人们选择Swing:(1)Swing拥有一个丰富、便捷的用户界面元素集合。(2)Swing对底层平台依赖的很少,因此与平台相关的bug很少。(3)Swing给予不同平台的用户一致的感官效果。4第三章 H

31、TML的分析3.1 HTML概述超文本标记语言(HyperText Markup Language,HTML)是一种用于文档布局和超文本链接规范的语言。它定义了特殊的、嵌入式指令的语法和放置方法,浏览器中不会显示这些指令,但是HTML可以告诉浏览器该如何显示文档的内容,如文本、图像及其他支持的媒体等,还有如何通过特殊的超文本链接来制作交互式的文档,这些链接可以把这些文档和其他因特网资源链接起来。HTML词法分析是浏览器设计的基础环节之一,也是整个设计过程中重要的前端工作,其数据结构的拟定与接下来的语法分析和布局算法密切相关,词法分析的效率与准确性、容错性也关系到整个浏览器设计的质量。53.2

32、HTML词法分析器Bit Token的组成及其功能Bit Token是Netbit Browser的HTML词法分析器,使用标准C编程,Netbit Browser是基于Linux/Gtk的浏览器,也是一个开放源码项目。Bit Token作为Netbit Browser的词法分析部份,负责对接收的HTML代码进行词法分析,主要的目的是提取网页中元素的名称及其属性,并以恰当的形式(即按一定的数据结构)加以保存,也就是完成了将数据流离散化、结构化的过程。Bit Token主要由以下几个部分组成:(1)初始化:完成对数据结构的初始化,主要是分配内存,变量赋初值。(2)主体的数据流分析:逐字符的进行判断,确定数据的归属类型。(3)元素的分析:提取元素的名称、属性和值域。(4)释放:主要

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1