web浏览器设计与实现.docx
- 文档编号:23440110
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:27
- 大小:388.58KB
web浏览器设计与实现.docx
《web浏览器设计与实现.docx》由会员分享,可在线阅读,更多相关《web浏览器设计与实现.docx(27页珍藏版)》请在冰豆网上搜索。
web浏览器设计与实现
一、目的与任务
1.目的
(1)加深对计算机网络的基本概念和原理,以及网络编程接口Socket概念及编程原理的理解;
(2)提高学生网络应用与编程、分析与解决实际问题的能力,为大型网络编程打下坚实基础;
(3)通过撰写课程设计报告,锻炼学生的逻辑组织和语言表达能力;
(4)培养学生理论运用于实践的综合应用和设计创新能力。
通过本次课程设计,使学生进一步理解、领会C#语言和网络编程技术,把所学的知识运用到具体的程序设计当中去,编写一个接近实际的应用程序。
本课程设计是一门综合性实验。
通过本次课程设计,掌握。
net应用程序设计;加深对TCP/IP协议的理解;掌握C/S编程模式;掌握Socket机制、传输控制协议;用户数据报协议;掌握网络抓包的原理;掌握网络编程应用程序分析、设计、编程和调试的整个过程。
2.任务
(1)设计完成与网络应用相关题目的网络应用软件;
(2)调试运行之后,要求边演示边解释设计的思想、过程及采用的方法;
(3)完成课程设计报告.
二、基本要求
1.熟练掌握网络的基本概念和原理;
2.熟练掌握网络编程接口Socket概念及编程原理;
3.掌握基于TCP/IP的Internet编程技术;
4.掌握各种软件开发工具的使用过程及方法。
三、设备及工具
硬件:
微机120台以上,I3以上处理器,1024M以上内存、Ethernet网卡,交换机
软件:
Windows2000/XP操作系统,VS2010编程环境.
摘要
随着计算机技术和网络技术的发展,基于网络的开发也越来越多。
C#是微软开发的一种简单易懂、面向对象、类型安全的编程语言.随.NET技术的不断发展,C#在各个方面的编程优势都已经显现出来。
此次课程设计主要是利用C#进行网络与通信编程,完成简单的Web浏览器。
在此次设计中,我完成的Web浏览器主要是通过HTTP协议来实现的.HTTP协议,即超文本传输协议。
它是一个应用层的面向对象的协议,由于其简捷、快速的方式,非常使用于分布式超媒体信息系统.用户使用的大部分浏览器都是通过HTTP协议对网站中的内容进行浏览,在用户浏览网页时,在浏览器的地址中首先输入的就是HTTP,以告诉浏览器是通过HTTP协议来访问网页。
在此系统应用中,重点内容是对收藏夹的应用,其中包括对注册表的使用。
在C#中,Registry类、RegistryKey类可以实现对注册表的操作。
Registry类中封装了注册表中7个基本主键,通过此类可以在注册表中找到标准根项集。
RegistryKey类封装了对注册表的基本操作,包括读取、写入、删除等。
通过具体设计,我完成的Web浏览器主要能实现的功能为:
主界面、浏览网页、网页设置、浏览器设置等几个部分.
关键词网络技术,C#,浏览器,HTTP协议
第1章绪论
C#(CSharp)是微软(Microsoft)为.NETFramework量身订做的程序语言,C#拥有C/C++的强大功能以及VisualBasic简易使用的特性,是第一个组件导向(Component—oriented)的程序语言,和C++与Java一样亦为对象导向(object—oriented)程序语言。
此次程序设计的主要任务是利用C#实现一个自制的简单的Web浏览器.浏览器是个显示网页伺服器或档案系统内的HTML文件,并让用户与此些文件互动的一种软件。
个人电脑上常见的网页浏览器包括微软的InternetExplorer、Mozilla的Firefox、Opera和Safari。
浏览器是最经常使用到的客户端程序。
随着网络技术的发展,网络给人们带来了各种各样的信息,而浏览器是人们获取信息的途径。
网页浏览器主要通过HTTP协议连接网页伺服器而取得网页,HTTP容许网页浏览器送交资料到网页伺服器并且获取网页。
HTTP协议的主要特点可概括如下:
●支持客服端/服务器模式。
●客服端向服务器请求服务时,只需传送请求方法和路径。
请求方法规定了客户与服务器联系的类型,常用的有GET、HEAD、POST等。
●HTTP协议是无状态协议。
无状态的含义是指协议对于事务处理没有记忆能力,当事务处理结束后,HTTP协议随之结束。
此时在默认状态下,如果后续处理需要前面的信息,则它必须重传,这将会导致每次连接传送的数据量增大.如果服务器不需要先前信息时,它的应答就较快。
在此次设计中,我完成的简单的Web浏览器就是基于HTTP协议的应用,它能实现在地址栏中输入地址后,能连接网站,并显示网页内容;能实现简单的设置、文件、帮助、后退、前进、刷新、首页等功能;此外,还能实现历史记录.使用这样的自制浏览器可以带来一些好处,例如它无需安装,无需升级,没有版权的限制,还可以随时增加或者减少自己需要或者不需要的功能。
第2章系统功能介绍
2。
1系统模型
本系统主要完成简单的Web服务器,实现在地址栏中输入地址,可以连接到网站,并显示网页的内容。
在此基础之上,还可以实现简单的设置、文件、刷新、首页等功能。
整个系统的功能模块图如图2。
1所示.
图2.1系统功能模块图
2。
2系统功能设计
一个浏览器主要有的功能:
主界面、浏览网页、浏览设置、浏览器设置等几个部分。
本系统是基于HTTP实现的浏览器,在浏览器的创建过程中,应用到一个ActiveX控件,这个控件可以完成浏览器的大部分功能,可以通过此控件浏览到网页的内容。
在系统中还创建了主菜单栏,并在主菜单栏中创建了对浏览器进行设置的“设为空白页”、“设为首页"等功能。
同时,在“浏览控制按钮”栏中,创建了浏览器的一些基本功能,“后退”、“前进”、“刷新”、“首页"等.此外,用ComboBox控件制作了网页地址栏输入,可以在此输入需要浏览的网站地址,并且能实现历史记录。
此系统的设计流程,如图2。
2所示.
图2。
2系统设计流程图
2.3系统模块
2.3。
1主界面功能介绍
主界面是浏览器主体,运行程序,首先看到的是主界面,如图2.3所示。
图2。
3主界面
在主界面的最上边是一个menuStrip组件,列出浏览器“文件”、“编辑”、“查看”“工具”“帮助”等选项。
主菜单栏下是一个toolStrip控件,用于显示浏览控制按钮.在浏览控制按钮下是一个Pannel控件,在此控件上,添加一个Lable控件用于显示文字信息“地址”,添加一个ComboBox控件用于输入网页地址信息,添加一个Button控件用于发送HTTP协议。
2.3.2具体模块功能介绍
在主菜单中,能实现的功能主要有“设置"、“文件”、“工具”和“帮助”。
其中,“设置”能实现设为空白页、设为首页和动感效果;“文件”能实现新建、打开和推出;“工具”能实现发送邮件;“帮助”能实现“关于”,它弹出一个对话,显示关于浏览器的简单说明。
在浏览控制按钮栏中,能实现基本的浏览控制:
新建、后退、前进、停止、刷新、主页。
在地址栏中输入地址,按回车键或者“转到”按钮都可连接到网站并显示网页内容.此外,点击地址栏的下拉列表可查看历史记录.
2.3.3关于ActiveX控件axWebBrowser的添加
1.在C#Windows应用程序的新建项目中,选择“工具",打开“选择工具箱项”对话框。
2。
在此对话框中打开“COM组件”选项卡,在列表框中选中“MicrosoftWeb浏览器”复选框。
3。
单击“确定”按钮,在集成开发环境的“工具箱”便会出现“MicrosoftWeb浏览器”控件,将此控件拖曳到Form窗口上。
按照以上步骤操作,就完成了axWebBrowser控件的添加.
第3章系统功能实现
3.1浏览功能实现
3.1.1主菜单实现基本操作
//
//menu_File
//
this.menu_File。
Index=0;
this。
menu_File。
MenuItems。
AddRange(newSystem.Windows。
Forms.MenuItem[]{
this.menu_FileNew,
this.menu_FileOpen,
this.menu_FileSave,
this.menu_FileSaveAs,
this.menuItem5,
this。
menu_FileProperty,
this。
menu_FileExit});
this.menu_File.Text=”文件(&F)”;
//
//menu_FileNew
//
this.menu_FileNew.Index=0;
this。
menu_FileNew。
Text="新建”;
this。
menu_FileNew。
Click+=newSystem.EventHandler(this.menu_FileNew_Click);
//
//menu_FileOpen
//
this.menu_FileOpen.Index=1;
this。
menu_FileOpen.Shortcut=System.Windows。
Forms.Shortcut.CtrlO;
this。
menu_FileOpen。
Text=”打开”;
this。
menu_FileOpen。
Click+=newSystem。
EventHandler(this.menu_FileOpen_Click);
//
//menu_FileSave
//
this。
menu_FileSave。
Index=2;
this.menu_FileSave。
Shortcut=System.Windows.Forms.Shortcut.CtrlS;
this。
menu_FileSave。
Text="保存”;
this.menu_FileSave.Click+=newSystem.EventHandler(this。
menu_FileSave_Click);
//
//menu_FileSaveAs
//
this。
menu_FileSaveAs.Index=3;
this。
menu_FileSaveAs.Text=”另存为”;
this.menu_FileSaveAs.Click+=newSystem。
EventHandler(this.menu_FileSaveAs_Click);
//
//menuItem5
//
this.menuItem5。
Index=4;
this。
menuItem5.Text="—”;
//
//menu_FileProperty
//
this。
menu_FileProperty。
Index=5;
this.menu_FileProperty.Text="属性(&R)”;
this.menu_FileProperty。
Click+=newSystem.EventHandler(this。
menu_FileProperty_Click);
//
//menu_FileExit
//
this。
menu_FileExit。
Index=6;
this.menu_FileExit.Shortcut=System。
Windows。
Forms.Shortcut。
CtrlX;
this。
menu_FileExit.Text="退出(&C)";
this。
menu_FileExit.Click+=newSystem。
EventHandler(this。
menu_FileExit_Click);
//
//menu_Edit
//
this.menu_Edit.Index=1;
this。
menu_Edit.MenuItems。
AddRange(newSystem.Windows。
Forms。
MenuItem[]{
this。
menu_EditCut,
this.menu_EditCopy,
this。
menuEditPaste,
this。
menuItem16,
this.menu_EditSelAll,
this.menu_EditFind});
this.menu_Edit.Text=”编辑(&E)”;
//
//menu_EditCut
//
this。
menu_EditCut.Index=0;
this.menu_EditCut。
Shortcut=System。
Windows.Forms.Shortcut.CtrlX;
this。
menu_EditCut。
Text=”剪切”;
this.menu_EditCut。
Click+=newSystem.EventHandler(this。
menu_EditCut_Click);
//
//menu_EditCopy
//
this。
menu_EditCopy.Index=1;
this.menu_EditCopy。
Shortcut=System。
Windows.Forms.Shortcut.CtrlC;
this.menu_EditCopy。
Text="复制”;
this.menu_EditCopy.Click+=newSystem。
EventHandler(this。
menu_EditCopy_Click);
//
//menuEditPaste
//
this.menuEditPaste.Index=2;
this。
menuEditPaste。
Shortcut=System。
Windows.Forms.Shortcut。
CtrlV;
this.menuEditPaste。
Text=”粘贴”;
this.menuEditPaste.Click+=newSystem。
EventHandler(this。
menuEditPaste_Click);
//
//menuItem16
//
this.menuItem16.Index=3;
this.menuItem16。
Text="-”;
//
//menu_EditSelAll
//
this.menu_EditSelAll。
Index=4;
this。
menu_EditSelAll。
Shortcut=System。
Windows.Forms。
Shortcut.CtrlA;
this.menu_EditSelAll.Text="全选";
this.menu_EditSelAll。
Click+=newSystem。
EventHandler(this。
menu_EditSelAll_Click);
//
//menu_EditFind
//
this。
menu_EditFind.Index=5;
this.menu_EditFind。
Shortcut=System。
Windows.Forms。
Shortcut。
CtrlF;
this。
menu_EditFind。
Text="查找”;
this.menu_EditFind.Click+=newSystem。
EventHandler(this。
menu_EditFind_Click);
//
//menu_View
//
this。
menu_View。
Index=2;
this.menu_View。
MenuItems。
AddRange(newSystem.Windows.Forms。
MenuItem[]{
this。
menu_ViewSource});
this。
menu_View.Text="查看(&V)";
//
//menu_ViewSource
//
this。
menu_ViewSource。
Index=0;
this。
menu_ViewSource。
Text="源文件”;
this。
menu_ViewSource。
Click+=newSystem。
EventHandler(this。
menu_ViewSource_Click);
//
//menu_Tool
//
this。
menu_Tool.Index=3;
this。
menu_Tool.MenuItems。
AddRange(newSystem。
Windows。
Forms.MenuItem[]{
this.menu_ToolInternet,
this.menuItem1,
this。
menuItem3,
this.menuItem6});
this.menu_Tool。
Text=”工具(&T)”;
//
//menu_ToolInternet
//
this.menu_ToolInternet。
Index=0;
this。
menu_ToolInternet.Text="Internet选项";
this。
menu_ToolInternet。
Click+=newSystem。
EventHandler(this。
menu_ToolInternet_Click);
//
//menuItem1
//
this。
menuItem1.Index=1;
this.menuItem1.Text="收藏夹";
//
//menuItem3
//
this。
menuItem3。
Index=2;
this.menuItem3。
Text=”设置";
//
//menuItem6
//
this。
menuItem6.Index=3;
this。
menuItem6。
Text=”下载内容”;
//
//menu_Help
//
this.menu_Help.Index=4;
this.menu_Help。
MenuItems。
AddRange(newSystem。
Windows.Forms。
MenuItem[]{
this.menu_HelpAbout,
this。
menuItem2});
this.menu_Help.Text=”帮助(&H)";
this.menu_Help.Click+=newSystem.EventHandler(this。
menu_Help_Click);
//
//menu_HelpAbout
//
this。
menu_HelpAbout。
Index=0;
this.menu_HelpAbout。
Text="关于";
this。
menu_HelpAbout.Click+=newSystem.EventHandler(this.menu_HelpAbout_Click);
//
//menuItem2
//
this。
menuItem2.Index=1;
this.menuItem2.Text="检查更新";
//
//menuItem4
//
this。
menuItem4。
Index=5;
this.menuItem4.Text=”添加到收藏”;
3.1。
2用“转到"按钮实现浏览
在地址栏中输入网址,除了按回车键可以连接到网站外,还可以单击地址栏后的“转到”按钮连接到网站.双击设计窗体中的“转到”按钮,在此按钮的Click事件中添加代码实现用“转到"按钮浏览。
程序代码如下:
this。
btnGo。
FlatStyle=System.Windows.Forms。
FlatStyle.Flat;
this.btnGo。
Font=newSystem。
Drawing.Font("华文彩云”,8.999999F,System.Drawing.FontStyle.Regular,System。
Drawing。
GraphicsUnit.Point,((byte)(134)));
this.btnGo。
Location=newSystem.Drawing。
Point(318,36);
this.btnGo。
Name=”btnGo";
this。
btnGo.Size=newSystem。
Drawing.Size(63,22);
this.btnGo。
TabIndex=3;
this.btnGo。
Text=”转到";
this。
btnGo.Click+=newSystem。
EventHandler(this。
btnGo_Click);
3.1.3“帮助”功能实现
“帮助”可实现“关于”功能。
在主菜单中,选择“帮助”,打开“关于”,弹出一个对话框,它是关于程序的简单描述,如图3.2所示。
图3。
2关于对话框
“关于”对话框是在“关于”的Click事件中调用另一个窗体Form2来实现的,“关于”的程序代码如下:
this。
menu_HelpAbout。
Index=0;
this.menu_HelpAbout。
Text=”关?
于?
;
this.menu_HelpAbout.Click+=newSystem。
EventHandler(this。
menu_HelpAbout_Click);
}
在Form2窗体的设计中,添加一个PictureBox控件来显示图片,添加Label控件来实现文字的显示,并用一个“确定"按钮来实现退出对话框。
程序如下所示:
privatevoidmenu_HelpAbout_Click(objectsender,System.EventArgse)
{
MessageBox.Show(”旭日浏览器1.0”,”旭日浏览器”,MessageBoxButtons。
OK,
MessageBoxIcon.Information);
}
privatevoidmenu_FileExit_Click(objectsender,System。
EventArgse)
{
this.Close();
}
3.2浏览控制按钮功能实现
在Form设计窗口中,在toolStrip控件上双击鼠标左键,为此控件的Click事件添加相应的程序代码,可以实现对浏览器进行后退、前进、暂停、刷新、首页、搜索操作。
程序代码如下:
this.mainToolBar。
Appearance=System.Windows。
Forms.ToolBarAppearance。
Flat;
this.mainToolBar。
Buttons.AddRange(newSystem.Windows。
Forms.ToolBarButton[]{
this.tbb_New,
this.toolBarButton1,
this.tbb_Back,
this.tbb_Forward,
this。
toolBarButton2,
this.tbb_Stop,
this.tbb_Refresh,
this。
tbb_GoHome,
this。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- web 浏览器 设计 实现