毕业设计(论文)-VisualC++浏览器的设计与实现.doc

上传人:哈尼dd 文档编号:3947478 上传时间:2019-10-10 格式:DOC 页数:36 大小:2.04MB
返回 下载 相关 举报
毕业设计(论文)-VisualC++浏览器的设计与实现.doc_第1页
第1页 / 共36页
毕业设计(论文)-VisualC++浏览器的设计与实现.doc_第2页
第2页 / 共36页
毕业设计(论文)-VisualC++浏览器的设计与实现.doc_第3页
第3页 / 共36页
毕业设计(论文)-VisualC++浏览器的设计与实现.doc_第4页
第4页 / 共36页
毕业设计(论文)-VisualC++浏览器的设计与实现.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《毕业设计(论文)-VisualC++浏览器的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-VisualC++浏览器的设计与实现.doc(36页珍藏版)》请在三一文库上搜索。

1、宜宾学院 本科毕业论文本科毕业论文( (设计设计) ) 院(系)级班: 计算机与信息科学系 2005 级 1 班 专 业: 计算机科学与技术 题 目: 浏览器的设计与实现 指导教师: 导师职称: 讲 师 学 号: 姓 名: 同 组 人: 无 宜宾学院 年 月 日 2 摘 要 论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点说明了系统 设计重点、设计思想、难点技术和解决方案;同时也论述了基于 HTTP 协议的 Web 浏览器 的开发思路、开发过程、利用的主要技术及本浏览器应用程序的功能模块的说明。 本课题是在深入理解 HTTP 协议的工作机理,系统掌握了 TCP/UDP 网络通信

2、协议及 网络编程的基本方法,掌握了使用 Windows Sockets API 和 MFC Socket 编程技术之后,采 用 Visual C+作为开发工具来设计并实现一个 Web 浏览器,其功能主要包括:浏览器的界 面实现;实现收藏菜单;显示超文本;删除相关历史记录;将应用程序加入到时工具栏、禁止弹 出窗口、禁止浏览某些网站访问 Web 页,保存网页,打印网页,停止当前访问,刷新网页, 查看源文件和 Internet 属性等等。 关键词:关键词:Visual C+;MFC; HTTP 协议;浏览器 3 Abstract The thesis describes the developmen

3、t of the subject background, to complete the function and the development process. Focusing on system design, design ideas, technologies and solutions difficult; but also based on the HTTP protocol on the Web browser of development, development process, the main use of browser technology and the app

4、lication of that function. This issue is an in-depth understanding of the working mechanism of HTTP protocol, the system master TCP / UDP network communication protocol and the basic methods of network programming, master the use of Windows Sockets API and MFC Socket programming techniques, the use

5、of Visual C + + as a development tool to design and realization of a Web browser, its functions include: achievement of the browser interface; achieve Favorites menu; display hypertext; delete historical records; the application, when added to the IE toolbar, pop-up window the prohibition to prohibi

6、t the browsing of a visit the Web page of some sites, save the page, print the page, stop the current visit, refresh the page to see source documents and Internet properties and so on. Keywords: Visual C +; MFC;The HTTP protocol; WebBrowser 4 目 录 摘 要2 第 1 章 绪论6 1.1 研究本课题的意义.6 1.2 国内外研究状况概述.6 1.3 本课题

7、的主要任务.6 1.4 本课题的难点.7 1.5 课题开发平台和开发工具.7 第 2 章 VISUAL C+应用平台及网络协议8 2.1 VISUAL C+ 引论.8 2.2 MFC 界面元素.8 2.3 ACTIVEX 技术15 2.4 WEB 协议簇.16 2.5 HTTP 协议.16 2.6 浏览器工作原理.18 2.7 浏览器实现技术.19 第 3 章 系统需求分析.20 3.1 可行性研究.20 3.2 需求分析.21 第 4 章 浏览器系统设计与实现24 4.1 浏览器软件体系结构.24 4.1.1 模块划分 .24 4.1.2 模块功能描述 .24 4.1.3 模块间的接口 .2

8、5 4.2 浏览器系统设计.26 4.2.1 主框架的生成 .26 4.2.2 地址栏的生成与处理 .26 4.2.3 添加“功能选项菜单” .26 4.2.4 添加与“功能选项菜单”相对应的工具栏 .27 4.2.5 添加“查看网页源文件”菜单选项 .27 4.2.6 添加“删除历史记录”菜单选项 .27 5 4.2.7 生成我的收藏夹 .27 4.2.8 实现在新窗口中打开网页中的超级链接 .28 4.3 浏览器系统实现.28 4.3.1 浏览器实现步骤 .28 4.3.2 浏览器实现部分图片显示 .30 第 5 章 浏览器系统测试.31 5.1 程序运行环境.31 5.2 测试用例.31

9、 第 6 章 总 结33 致 谢.34 参考文献.35 6 第 1 章 绪论 随着网络技术的不断发展,如何准确、快速地浏览网上提供的浩如烟海的资源已成 为人们普遍关注的问题,一个基于完善的网络协议的,好的、易用的客户端应用软件的 开发也就变得十分重要。 1.1 研究本课题的意义 随着网络时代的飞速发展与前进,切身感受到了它在生活中占据着越来越重要的地 位,计算机软件硬件的快速跳跃式的发展,计算机广泛地应用于各行各业,包括医学,金 融,教育,建筑等。但众所周知,单机的电脑并不能带来多大的益处,充其量不过是一 台庞大存储设备或者说是一台快速计算的设备而已,只有能够联网的计算机才能发挥它 的巨大优势

10、,达到程序共享,资源共享,共同协作的目的。为了获取互联网上海纳百川 的资讯,在网络的世界里找到自己想了解到的,自己想探索到的新知识,需要借助到一 个工具,这就是我们每一个人都熟悉的浏览器。 本课题是为了加深理解 HTTP 协议的工作机理,进而开发出方便用户使用的网络资 源浏览应用程序软件浏览器。网络浏览器虽然有很多现成的版本,有一些都已经很成熟, 比如微软的 IE 和 NETSCAPE,但在很多时候都需要进行浏览器的定制开发。比如在触摸 屏的开发中,那些现在已成为标准的浏览器都无法使用,需要自行开发。 1.2 国内外研究状况概述 任何协议的雏形都非尽善尽美的,HTTP 协议也经历了这样一个功能

11、不断完善,不断 增加的过程。从 HTTP 出现到制定相应的 RTC,HTTP 的版本经历了 HTTP0.9,HTTP1.0,HTTP1.1。随着协议的不断完善和面向对象开发工具的不断发展, 基于协议的应用程序的开发也相应的变得容易起来。有时候开发人员无需知晓低层协议 的工作就可以开发出不错的浏览器应用程序。 WEB 浏览器把纯文本的 HTML 文件转变成图文混排,可理解性强的 WEB 页面,极 大地推动了因特网的普及与发展。如今浏览器已经从 90 年代初单一的 HTML 文本解释器 发展成可支持 Java,Java Script,VRML 等多种语言诉系统软件,并成为众多网络应用系 统的支撑平

12、台。在我国,浏览器技术研究比较缓慢,具有自主版权的浏览器在市场上还 很罕见。 1.3 本课题的主要任务 本课题的主要任务是深入理解 HTTP 协议的工作机理,开发出适合自己需要的浏览 器应用程序,因此应解决的主要问题是如何把自己所学的网络知识应用到实际编程当中 去以及如何处理编制的应用软件的可用性、易用性、健壮性。开发浏览器时,若想从非 常深入地解析 HTTP 协议的框架和原理,试图从低层协议出发解析从服务器获得的 HTML 写成的网页难度会相当大,因此,在技术上,使用 MFC 的 CHtmlView 类来实现 浏览器应用程序的编写。 7 在较为详细地了解了 Visual C+应用平台之后,掌

13、握浏览器的制作与实现过程,通过 强大的 Visual C+应用平台设计一个 WEB 浏览器,要求它具有浏览器的最基本的应用功 能的基础上,添加一些具有人性化的选项功能。设计浏览器时,首先确定要解决的问题 是弄清楚 MFC 中封装的 CHtmlView 类的定义和使用方法,彻底弄明白此类到底封装了哪 些对浏览网页支持的功能,这是浏览器编程的基础;其次是通过分析页面下载的具体过 程,在打开网页的过程中应用程序需要做哪些事情,以便在应用程序中加入对这些过程 支持的代码;在对应用程序的流程有了大致的轮廓以后,再开始考虑程序框架的设计, 应用程序外观的设计;最后也是最关键的就是编写实现浏览网页的代码,

14、以实现浏览器的 基本功能,紧接着就是程序的调试和完善。 1.4 本课题的难点 本课题是在对熟练掌握使用了 Visual C+ 集成开发工具,尤其是 MFC 之后,设计 并实现一个浏览器。 浏览器开发过程中,有几个模块做起来比较复杂,构成了整个应用程序的难点所在。 本课题的难点如下: 1网址栏的初始化,需要从注册表中读取 URL 格式的文件去初始化网址栏,以便 于每次浏览时以前输入的网址可用,不必为了浏览打开过的网址而重新输入。 2在新窗口中打开链接。当用户点中页面上的超级链接时,应用程序会在新窗口中 打开本链接。 3收藏夹的制作。 4查看源文件的制作。 1.5 课题开发平台和开发工具 本课题在

15、 windows 系统下开发,软件基本运行环境为 Windows 环境。 硬件环境 处理器:Intel Pentium III 或更高。 内存:128MB 以上。 硬盘空间:20GB 以上。 软件环境 操作系统:WINDOWS98/2000/XP/Vista。 Visual C+作为前台开发工具,软件基本运行环境为 Windows 环境,由于系统相对 较小,且在 Windows 系统下开发,故在 Windows 环境下基本没有什么限制。 8 第 2 章 Visual C+应用平台及网络协议 2.1 Visual C+ 引论 只有真正的程序员才使用 Visual C+。反过来,则并不见得如此。最

16、近似乎有许多专 业的程序员放弃了使用这一语言而改用了其它产品提供的 RAD(快速应用开发)环境。 许多人认为 Visual C+太古老、太烦琐、学起来太困难了。Visual C+的学习周期确实比 其它语言要长。可以很轻易地引入需要花上数小时才能排除的微妙错误这一事实一点也 无助于提高程序员的开发效率。 然而,先把这些负面缺陷暂时放到一边,来看一看 Visual C+具备的长处。使用 Visual C+主要的原因之一就在于它的灵活性。可以彻底地控制整个开发环境。其它语言 则更多地趋向于庇护程序员,当要做一些基本的东西时,它们会做得很好。不幸的是, 当需要使用像 C+这样的语言删除编程中的繁文缛节

17、,并把任务完成时,这种保护作用 就变成了开发工作的障碍。 长期以来,Visual C+一直拥有能够创建短小高效程序的美誉。使用这种语言编写的 程序几乎可以与用汇编语言编写的程序达到相同的运行速度,并且避免了汇编语言存在 的各种问题。C+实际上是介于汇编语言中寄存器编程的神秘莫测和像 Pascal 这种保护型 编程环境方便性之中间难度的语言。 C+是编写诸如操作系统、设备驱动程序以及动态链接库(DLL)的强大语言,这一 点不会不引起你的注意,这三种领域代码的开发依然是 Visual C+的主战场。Visual C+ 生成的短小、快速的代码在操作系统类对时间要求很高的系统中获得了极高的赞誉。 Mi

18、crosoft 添加到这个版本的 Visual C+中的最新特性之一是更佳的原型能力,这一点通 过增强的向导来实现。现在,这个特性还不能把 Visual C+提升到像 Visual Basic 向导相 同的水平上,但它确实减少了开发应用程序的入门时间,这是个深受欢迎的变化。另外, 增强的向导使得这个版本的 Visual C+比以前版本更为友好。 Visual C+也是编写 ActiveX 控件以及像 ISAPI(Internet 服务器应用程序接口)扩展 和 ISAPI 过滤器这样针对 IIS 的专用代码的理想编程环境。即使对属于快速应用程序开 发环境中的应用程序编程来说,也没有人愿意花时间从

19、 Inter-net 上下载一个巨型控件,也 同样没有人愿意让慢速的过滤器加重 Web 服务器的负担。Visual C+可以生成人们真正 想要的简短可执行文件。另外,Visual C+提供的额外灵活性也使得编写这些类型的应用 程序更加容易些。 2.2 MFC 界面元素 MFC Studio 窗口元素窗口元素 使用 Visual C+ 编辑程序时,可以把 Visual C+ 的显示界面划分成三块功能区:工 具条、视图以及编辑窗口。每个功能区都可以独立于其它功能区来操作,因此,可以在 各功能区之间自由地切换。图 2.2.1 显示了典型编辑器的显示情况以及这三个功能区的位 9 置。 Visual C

20、+ 通过各种手段来简化编码工作。文本窗口中首先注意到的东西是代码的颜 色。例如,关键字的缺省颜色为蓝色,而注释的颜色为绿色。这种方式的彩色代码让你 能够轻易地分辨出代码的性质。 图 2.2.1 VC 窗口界面元素 本窗口的左边缘是一竖条,这是 Visual C+ 放置各种符号的地方,它通过颜色来区 分数据和代码控制区。例如,当我们在代码中设置了断点后,Visual C+ 就在这个竖条 上显示断点符号,当该断点可用时,断点符号为红色,否则,断点符号为白色。 文本框的各个区域中都可以通过右击来显示一个上下文相关菜单。上下文菜单中包 含了可以进行基本操作的各种选项,与 Developer Studi

21、o 界面的其它地方不同,这些菜单 不能直接进行修改。 可以像使用任何编辑器那样剪切、复制或粘贴文本。由于系统已经加亮了#include 文 件项,因此上下文菜单提供了一个打开该文件的机会。如果当前工程中还没有包含该文 件,那么使用 Insert File into Project 菜单项就可以把该文件包含到工程中。Check Out 菜 单项用于管理小组型工程,通过它可以获取对文件的控制,以便编辑文件。接下来的三 个菜单项可以查找当前项更详细的信息。例如,使用 Parameter Help 菜单项可以得到函数 调用的参数信息,AutoComplete 协助你完成函数调用的键入。后面的两个菜单项

22、用于浏 览工程。可以找到某个特定项目在哪里引用、在哪里定义。由于这些项目依赖于建立工 程时创建的 BSC 文件,因此,在使用这些项目前要确保最近有效地重建过工程。后面的 两个菜单项Insert/Remove Breakpoint 和 Enable Breakpoint 用于调试应用程序。最后, 可以打开 ClassWizard 来操作所选对象或查看文档的属性。 由于前面已经讨论过这些菜单项的主要用途,因此这里只研究三个最重要的菜单项。 使用 Insert Ac-tiveX Control 菜单项可以把 ActiveX 控件添加到当前对话框中而无须将它实 际添加到工程中。这样,就可以在生成一大堆

23、代码之前先看到该控件的工作效果。不过, 如果决定确实要使用该控件时,记住以后把该控件添加到工程中。Check Mnemonics 菜单 项告诉 Visual C+ 检查一下已经添加的所有控件,看是否存在同名错误或任何违反规则 的情况。当做完了一个对话框后,这个检查相当重要。最后,Event 菜单项显示一个对话 框,告诉所选对象都支持哪些事件。这个对话框还能够创建监控的任何事件的句柄。 类视图(类视图(ClassView) 该视图提供了工程中所有类的层次列表,通过扩展可以显示类中包含的细节。例如, 10 类中将包含要编辑的成员函数等。图 2.2.2 显示了一个典型的类视图。 图 2.2.2 类视

24、图 在层次列表的每个项目前面都有一个特殊的图标。例如,每个类的前面都有一个由 线条连接起来的三个方框形图标。类视图中显示三种成员函数:第一种是公共成员函数, 它的图标为一个紫色菱形框;第二种是私有成员函数,它的图标上也有个菱形框,不过 菱形框的旁边还有一把钥匙;第三种是保护成员函数,它的图标上有个菱形框和一个小 锁。与此相似,变量也有三种类型,它们都使用青绿色图标。当看到一个绿色框时,你 就知道是看到了某个 COM 对象的方法。类视图中还使用了其它几种类型的图标,但上面 所述的六种图标是创建绝大多数工程时都需要知道的图标。 技巧:在 ClassView 窗口中右击,然后从上下文菜单中选择 Hi

25、de,可以隐藏 ClassView 窗口(或任何其它视图,只要在这些视图中按这一步骤操作) 。使用 View|Workspace 命令可以重新显示 ClassView 窗口。 资源视图(资源视图(ResourceView) 资源视图(ResourceView)在层次列表中列出了工程中用到的所有资源。任何图像、 字符串值以及程序所需要的其它非编程部件都可以作为资源使用。图 2.2.3 显示了一个典 型的资源视图窗口。 11 图 2.2.3 资源视图 Visual C+ 中可以创建的每一类资源在资源视图中都有自己的文件夹。工程中没有 使用某种特定类型的资源,那么资源视图中就不会显示这种资源的文件夹

26、。在每个文件 夹中包含了工程中所用的该类资源。例如,对话框(Dialog)文件夹中包含了工程中所有 的对话框,包括 About 对话框。每类资源也都使用自己的图标。 技巧:右击资源视图最顶端的文件夹,系统显示一个可以访问两类特殊对话框资源 的菜单:Resource Includes 和 Resource Symbols。右击特定资源的文件夹,系统会显示添 加该类新资源的上下文菜单。 工具条工具条 工具条(Toolbar)是我们讨论 Developer Studio 界面的最后一个话题。应该说明的是, Visual C+ 拥有比你启动 Visual C+ 后看到的工具条多得多的工具条。在工具条上

27、的任 何位置右击,都会看到如下图所示的上下文菜单: 图 2.2.4 工具条 该菜单中列出了 Visual C+ 提供的所有标准工具条。带选中符号的菜单项对应的工 具条当前显示在工具条区域中。如果想把某个菜单项对应的工具条添加到工具条区域, 只需要单击该菜单项即可;反过来,如果想在工具条区域中去掉某个工具条,也只需要 通过在上下文菜单中单击对应的菜单项、去掉其选中符号即可 Customize 对话框包含了几个让你重新配置 Developer Studio 界面上绝大多数部件的 选项卡。然而,这里我们最感兴趣的是 Commands 选项卡。对每个菜单和工具条它都包 含了一系列的图标(代表对应的命令

28、)或文本命令。如果想给现存工具条上增加一个命 令,只需要抓住其图标(或文本命令)并把它拖曳到工具条上,这样,所选命令就显示 在工具条上,你可以更快速地访问它们了。如果选择了某个现在还没有相应图标的命令, 那么系统会显示 Button Appearance 对话框,在这个对话框中可以为命令选择一个图标。 同样的功能对菜单项也一样起作用。你需要做的工作就是打开要修改的下拉菜单, 在 Commands 选项卡中抓住要添加到菜单中的命令,然后将其拖曳到菜单项中希望的位 置。在这种情况下,你看到的总是命令的文本版本而不是图标。 从工具条或菜单中删除不需要命令的方法也很简单。简单地抓住不需要的命令,并把

29、它拖曳到 Customize 对话框中。该命令将在菜单或工具条中消失,当然,你随时都可以重 12 新把它添加到菜单或工具条中。 可以根据需要移动工具条的位置。单击工具条左边缘的双线竖杠,然后把工具条拖 曳到所需位置。与此相似,如果你不喜欢某个菜单的当前位置,那么抓住它(在 Customize 对话框打开的情况下)并把它移动到所需位置。 Visual C+的资源的资源 资源,是指各种各样可供利用的财富,它们可能埋藏在地表下面,也可能就在你的 后院中。就物理意义而言,从森林中的树木到地层中开采出来的煤炭,这一切都可以称 为资源。虽然不能从 Visual C+中获得物理意义上的贵重珍宝,但可以挖掘到

30、建立程序时 所需的资源。 和任何一种矿产资源一样,Visual C+中的资源提供了一种原材料,将其与程序元素 结合起来就可以创建一个成品。在这里,资源与代码结合,创建应用程序的一部分,如 菜单或工具条。事实上,在程序中看到的大多数元素也都来自某类资源。当然,Visual C+资源不仅仅是原材料,但原材料的作用是非常大的。 那么,可以从 Visual C+的资源矿产中挖掘到什么呢?这些资源的外形和大小各不相 同,包括加速键、位图、光标、对话框、图标、菜单、串表、工具条和版本信息。你会 看到,某些资源存在子类,每种资源都有特定的用途。在某些情况下,用向导设计程序 时,Visual C+自动创建资源

31、,如 About 对话框。所创建的其它资源是设计另外一些程序 的一部分,如字符串。最后,你会人工设计一些资源,如对话框。 Visual C+支持十种资源:加速键、位图、光标、对话框、HTML、图标、菜单、串 表、工具条和版本信息。 图 2.2.5 资源图 可以随时创建任何所需要的资源。只需显示 ResourceView(资源视图) ,右击 Resources(资源)文件夹,从上下文菜单中选择 Insert(插入) 。会看到一个 Insert Resource(插入资源)对话框,如上图所示。请注意,它显示出我们已提到过的所有十种 资源。还应该看到,有三种创建资源的方式,即使用对话框上的 New(

32、新建) , Import(导入)或 Custom(自定义)按钮。 可以在当前程序中使用来自其它工程的资源。例如,可能想在编写的每一个程序中 都使用相同的徽标。只需右击 Resources(资源)文件夹,从上下文菜单选择 Import(导 入)而不是 Insert(插入) 。你会看到 Open-type(打开类型)对话框。选择包含了想要导 13 入的资源的文件。正是由于这个原因,你会想到把你的大多数资源与程序分离。可惜的 是,这种方法只对图标、光标、声波文件以及 Visual Basic 窗体文件有用。 技巧:有几种使用来自其它工程的其它类型资源的方式,如 About(关于)对话框。 只需简单地

33、为想要共享的资源创建一个分离的 RC 文件就行了。这在遇到像 About 对话框 这样的资源时很有用。你只要将 RC 文件添加到工程中,剩下的由 Visual C+来处理。另 一种共享资源的方法是,将其复制到剪贴板,再在创建了正确类型的空白资源后,将其 粘贴到工程中。 自定义资源就是自己设计的资源。实际上,它并不适合 Visual C+所提供的预定义类 型。创建一个自定义资源项目很容易:只要单击 Insert Resource(插入资源)对话框上的 Custom(自定义)按钮。会看到包含单个空白的 New CustomResource(新建自定义资源) 对话框。简单地输入自定义资源名。这时,V

34、isual C+会产生一个新的文件夹,它含有你 提供的自定义资源名和该文件夹内的一个新资源。还要提供实现这个资源所需的二进制 数据。 MFCMFC 应用程序类型应用程序类型 Visual C+应用程序可以分为五种类型: 1.控制台应用程序适用于你真正需要与遗留系统保持某种兼容性或不需要为用户提供 全功能操作界面的情况。 2.基于对话框的应用程序通常是实用程序的专利,也适用于极小型不需要菜单系统的 应用程序。 3.单文档应用程序适用于操作自有数据的简单应用程序,比如记事本或小型数据库前 端应用。这类应用程序也需要某种类型的菜单系统。 4.多文档应用程序是提供完整功能的应用程序,比如字处理程序或电

35、子表格。由于多 文档应用程序是 C+编程中十分复杂的部分,因此,当你考虑建立这类应用程序时,应 该在 Visual C+的灵活性与诸如 Visual Basic 之类的快速应用开发工具提供的速度之间进 行权衡。 5.基于 HTML 的应用程序是 Visual C+ 6.0 新增的应用程序类型。它们操作某种类型 的数据(像单文档或多文档应用程序那样) ,但与 Internet 结合在了一起。作为标准编辑 器的替代物,你的用户会看到 Web 浏览器风格的前端应用。 Visual C+有能力创建各种不同类型的代码。使用 Visual C+不仅可以创建 DLL、ActiveX 控件、ISAPI 扩展程

36、序、设备驱动程序、像屏幕保护器之类的后台应用程 序,甚至也可以扩展 Visual C+本身。 单文档界面应用程序单文档界面应用程序 单文档界面应用程序是像 NotePad(记事本)或 Microsoft Paint(画笔)这样的应用 程序。它一次处理一个文档,降低了编程的复杂度并减少了运行程序时所需的资源。对 某些小型应用(比如文本编辑器或小型图像编辑器)可以采用这种类型的窗口应用程序。 14 单文档界面应用程序允许用户与其创建的文档进行全面的交互,但通常不如多文档界面 的应用程序耐用。另外,单文档界面应用程序至少要比多文档界面的应用程序少一个菜 单就是用于选择要编辑文档的 Windows 菜

37、单。 基于对话框的应用程序相似,单文档应用程序也可以创建成 OLE 服务器。实际上, 这类应用程序也可以作为 OLE 客户程序,尽管极少有程序员把这种能力添加到他的应用 程序中。下图是本章后面要介绍的一个单文档应用程序示例。请注意这个示例可以作为 OLE 的客户端。 通过把应用程序的基视图类选择为 CHtmlView,可以把单文档界面的应用程序转换成 简单的 Web 浏览器。 不幸的是,单文档界面的应用程序与基于对话框的应用程序有相同的问题用起来太 复杂了。每当我想查看一幅图案时,不得不在查看之前首先关闭当前打开的文档。这种 限制使得 CorelDRAW 比它应该提供的方法要难用一些。 技巧:

38、当操作数据库管理系统时,单文档、基于窗口的应用程序工作的相当完美, 其原因相当简单,极少有用户需要同时打开多个数据库。即使他们需要同时打开多个数 据库,数据库本身的使用规则也减少了用户本身访问多个数据库的可能性。 多文档界面应用程序多文档界面应用程序 使用这种类型基于窗口的应用程序可以创建像字处理程序或电子表格那样的应用程 序。例如,Microsoft Word 和 Microsoft Excel 都是多文档应用程序的示例。文本编辑器具 备有限吸引力的原因正是由于其一次只能打开一个文档。人们需要在文档之间进行比较, 这就是多文档界面的应用程序不仅幽雅而且在众多情形下需要的原因。 通过把应用程序

39、的基视图类选择为 CHtmlView,可以把多文档界面的应用程序转换 成简单的 Web 浏览器。 多文档界面的应用程序通常也都具有多种功能,文本编辑器可以提供十分简单的查 找功能但并不提供替换文本的任何方法。而全功能的字处理程序则把查找和替换作为标 准功能来对待。 多文档界面应用程序的缺点就在于它处理多个文档。同时处理多个文档的能力也意 味着需要更多的额外编程工作。并不只是要跟踪所有打开的文档,也要提供 Windows 菜 单来管理特殊的程序特性,比如要考虑屏幕划分问题。还需要决定是否允许用户同时显 示多个文档。像最小化其中一个文档,而最大化另一个文档这样的任务也需要额外的程 序代码。总而言之

40、,即使在开始编写多文档应用程序之前,就需要做大量的编程准备工 作了。 当然,多文档界面的应用程序也有不少的缺点。例如,如果你以前把 Word 用做过 OLE 服务器,你就会知道,在另一个应用程序中单击链接之后,每次打开这个庞大的应 用程序时都要等待很长时间这种烦恼了。而且,你或许也经历过内存不够的困惑。在最 近之前,每当你要使用 OLE 时,你就必须有足够的内存同时运行两个应用程序。所幸的 15 是,通过让服务器接管客户端窗口的方法,Microsoft 已经降低了这类内存需求,现在只 负责操作文档本身了。客户窗口为服务器菜单和工具条提供了框架,因此不会再浪费额 外的内存空间了。 基于基于 HT

41、MLHTML 文档的应用程序文档的应用程序 Visual C+ 6.0 提供了一种新的应用程序类型,但你在 New 对话框的 Project 选项卡 中却找不到它的踪影。你可以通过 MFC AppWizard 第 6 步的对话框创建基于 HTML 文档 的应用程序。上述对话框 Base Class(基类)组合框中包含了一个 CHtmlView 选项,正 是使用这个选项来创建这种新型的应用程序。 由于定制的浏览器不需要具备全功能浏览器所有的通用功能,因此,定制浏览器会 减少内存需求和磁盘空间需求。换句话说,你可以建立一个提供浏览器所有功能、而又 不存在它们所含问题的程序环境。下图是个用于访问 W

42、eb 站点的基于 HTML 文档的应用 程序的示例(显示的是 CHtmlView 类提供的缺省 Web 站点) 。 图 2.2.9 HTML 这种新型应用程序比你原先想像得更有价值。例如,你可以把 CHtmlView 类添加到 现存应用程序中,让它能够访问基于 Web 服务器的帮助桌面,作为创建标准帮助文件并 把它添加到应用程序的一种替代方法,你可以创建十分专业化的 Web 浏览器,并把它置 入到应用程序中。 基于 HTML 的帮助的优点十分明显。使用老的帮助文件就意味着一旦把应用程序交 付给用户或在整个公司内分发后,你就不能够轻易地更新帮助文件。而更新 HTML 帮助 则简单到只需要在 We

43、b 服务器上修改文件即可。另外,使用 Microsoft Help Workshop 还 需要做一些额外的工作。而基于 HTML 的帮助则既不需要编译器,也不需要特殊工具, 只要有个文本编辑器即可。 HTML 帮助也有一些缺陷。一方面,难以在基于 HTML 的帮助中建立能够满足需要 的查询功能。由于查询用户所需的信息与建立这些信息处于同等重要的位置,因此,基 于 HTML 的帮助并不适合于初级用户。另外,基于 HTML 的帮助必须建立 Internet 链接。 这种新的应用程序类型还有许多其它的用途多的这里无法罗列。需要记住的重要一点是, 从 Internet 访问中能够得到好处的应用程序从

44、CHtmlView 类的使用中也会得到好处。利 用这个类,可以完成从销售代表处远程更新公司数据库到让用户易于登记产品之类的一 16 切任务。换句话说,CHtmlView 类为你和你的用户打开了一个新的世界。 2.3 ActiveX 技术 要做一个好的浏览器,其中 Internet Explorer Active 模型很重要,目前 Internet(WEB)技术发展动向,简略介绍了 Microsoft 提出的 ActiveX 技术的内容,阐述 了 ActiveX 技术与 WEB 站点建设和桌面程序开发的关系,以及利用 Visual C+和 Visual Basic 开发 ActiveX 部件的步

45、骤和方法,并给出了在 WEB 网页中使用 ActiveX 部件的例子。 ActiveX 概要概要 ActiveX 是 Microsoft 提出的一组使用 COM(Component Object Model,部件对象模型) 使得软件部件在网络环境中进行交互的技术集。它与具体的编程语言无关。作为针对 Internet 应用开发的技术,ActiveX 被广泛应用于 WEB 服务器以及客户端的各个方面。同 时,ActiveX 技术也被用于方便地创建普通的桌面应用程序。 ActiveX 的内容的内容 ActiveX 既包含服务器端技术,也包含客户端技术。其主要内容是: ActiveX 控制(Activ

46、eX Control) ;用于向 WEB 页面、Microsoft Word 等支持 ActiveX 的容器(Container)中插入 COM 对象。 ActiveX 文档(ActiveX Document) ;用于在 WEB Browser 或者其它支持 ActiveX 的 容器中浏览复合文档(非 HTML 文档) ,例如 Microsoft Word 文档,Microsoft Excel 文档 或者用户自定义的文档等。 ActiveX 脚本描述(ActiveX Scripting) ;用于从客户端或者服务器端操纵 ActiveX 控 制和 Java 程序,传递数据,协调它们之间的操作。

47、ActiveX 服务器框架(ActiveX Server Framework) ;提供了一系列针对 WEB 服务器应 用程序设计各个方面的函数及其封装类,诸如服务器过滤器、HTML 数据流控制等。 在 Internet Explorer 中内置 Java 虚拟机(Java Virtual Machine) ,从而使 Java Applet 能够在 Internet Explorer 上运行,并可以与 ActiveX 控制通过脚本描述语言进行通信。 2.4 WEB 协议簇 WEB 协议族可以分为三大块: (1)、超文本标识语言 HTML(Hypertext Makeup Language):专门

48、用于进行信息的表现 和发布。功能主要包括:排版功能;超文本链功能;简单交互功能。此语言具有 可移植性好、能较好的保持文献的逻辑完整性等特点。 (2)、统一资源定位器 URL(Unit Resource Location):用对全球 Internet 服务器的共享 访问资源进行唯一标识和定位。 (3)超文本传输协议 HTTP(Hypertext Transfer Protocol):规定 WWW 服务器与浏览器 之间信息传递规范的网络协议。 17 2.5 HTTP 协议 HTTP 协议的工作机制协议的工作机制 HTTP 的工作过程为典型的客户/服务器工作模式,客户即为 WWW 浏览器,服务 器即

49、是 WWW 服务器。HTTP 的工作过程使用请求/响应握手方式: 客户发生连接,双方建立起一个 TCP 连接; 客户发出请求; 服务器处理请求,返回应答; 服务器关闭连接。 HTTP 是面线连接的协议,通信开始时会在客户与服务器之间建立一条可靠的虚电路 (virtual circuit),请求应答完成后,即断开链路。通常情况下,客户要经过一个或多个中 继节点才能访问源服务器上指定的资源。 HTTP 的信息传输方式的信息传输方式 HTTP 具有两种信息传输方式: 、点对点方式,这显然是最简单的传输方式,拨号上网用户访问自己接入的 ISP 的 WWW 服务器即为此种方式。客户端主机与源服务器之间建立起点对点的直接连接关 系,响应速度当然也是比较快的。 、借助中间服务的方式,即设定所谓中间服务器,或称中继结点。HTTP 支持三种 类型的中间系统:代理服务器、网关型中间服务器、通道型服务器。 URL 编码和解码编码和解码 HTTP 协议存在的一个限制

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1