基于java的浏览器的设计与实现_第1页
基于java的浏览器的设计与实现_第2页
基于java的浏览器的设计与实现_第3页
基于java的浏览器的设计与实现_第4页
基于java的浏览器的设计与实现_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)任务书毕业设计(论文)题目基于JAVA的浏览器的设计与实现毕业设计(论文)要求及原始数据(资料)1综述国内外网页浏览器技术研究现状;2深入了解基于JAVA的浏览器的相关技术;3熟练掌握JDIC的应用与分析,训练编写JAVA桌面应用的能力;4深入网络通信的关键技术与JAVA语言;5训练检索文献资料和利用文献资料的能力;6训练撰写技术文档与学位论文的能力。毕业设计(论文)主要内容1综述JAVA的浏览器的应用;2了解网络浏览器的相关技术;3熟悉JAVA应用程序的开发环境;4深入分析漏基于JAVA浏览器的关键技术与JAVA程序的设计流程;5熟练掌握基于JAVA的网络通信程序编写;6设计与实现基于JAVA的浏览器应用程序。学生应交出的设计文件(论文)1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。主要参考文献(资料)1王保罗JAVA面向对象程序设计M清华大学出版社,20032祝瑞车敏基于HTTP协议的服务器程序分析J现代电子技术,20123陈涵生JAVA语言与JAVA技术J计算机工程,19974江小燕JAVA网络编程的研究J电脑编程技巧与维护,20105毕广吉JAVA程序设计实例教程M北京冶金工业出版社,20076钟陈刚ECLIPSE从入门到精通北京清华大学出版社,200547ERICJAVA编程思想M第4版机械工业出版社,机械工业出版社,20098LEMETREC,ZHANGQ,ZHANGZDSUBNETAJAVAAPPLICATIONFORSUBNETWORKEXTRACTIONJBIOINFORMATICS20139ZHUKOVAA,ADAMSR,LAIBEC,LENOVRENLIBKISAOAJAVALIBRARYFORQUERYINGKISAOJBMCRESNOTES201210PIETZSCHT,PREIBISCHS,TOMANCKP,SAALFELDSIMGLIB2GENERICIMAGEPROCESSINGINJAVAJBIOINFORMATICS201311MARTINNGOBYECOMPUTINGSTATICSLICEFORJAVAPROGRAMS专业班级软件1001班学生张晓宇要求设计(论文)工作起止日期2014年3月17日2014年6月27日指导教师签字日期2014年3月17日教研室主任审查签字日期系主任批准签字日期基于JAVA的浏览器的设计与实现摘要在当今的网络时代,网络的优势不言而喻,面向网络的编程技术当然也是热门的课题之一。随着互联网技术的不断发展,更多更新的网络技术被用于INTERNET,WEB类应用软件得到广泛应用,有越来越多的软件具有了WEB特性,很多应用开发往往也需要具有WEB浏览功能。浏览WEB是从互联网上获取资料、信息的主要途径。为此开发一个功能全面,能广泛应用的WEB浏览器。论文阐述了WEB浏览器的开发背景和系统开发平台,并对系统采用的技术进行了相应的介绍。系统分析阶段,分析并掌握了WEB浏览器的功能结构和工作原理,在系统的设计与实现中,主要阐述了系统总体设计、系统功能模块分析、系统主要功能介绍和系统详细设计与实现过程。论文的针对性很强,介绍浏览器的功能模块分析、主要功能以及实现过程。系统使用ECLIPSE作为开发工具,调用JDIC,开发一个功能全面,应用广泛,属于自己的个人浏览器。系统实现的功能主要有访问WEB页,保存网页,打印网页,停止当前访问,刷新本页,收藏网页。关键字JAVA;JDIC;计算机网络DESIGNANDIMPLEMENTATIONOFJAVABASEDONBROWSERABSTRACTINTODAYSERAOFNETWORK,THENETWORKSUPERIORITYISSELFEVIDENT,OFCOURSE,ISAHOTTOPICFORNETWORKPROGRAMMINGTECHNOLOGYWITHTHECONTINUOUSDEVELOPMENTOFINTERNETTECHNOLOGY,MOREUPDATEDNETWORKTECHNOLOGYAREUSEDININTERNET,WEBTYPEOFAPPLICATIONSOFTWAREISWIDELYUSED,MOREANDMORESOFTWAREHASTHECHARACTERISTICSOFWEB,ALOTOFAPPLICATIONDEVELOPMENTOFTENREQUIRESWEBBROWSINGBROWSINGTHEWEBISTHEMAINWAYTOACQUIREINFORMATION,INFORMATIONFROMTHEINTERNETTHEREFORETHEDEVELOPMENTOFACOMPREHENSIVEFUNCTIONS,CANBEWIDELYUSEDINTHEWEBBROWSERTHISPAPEREXPOUNDSTHEDEVELOPMENTBACKGROUNDOFTHEWEBBROWSERANDTHESYSTEMDEVELOPMENTPLATFORM,ANDTHETECHNOLOGYOFTHESYSTEMAREINTRODUCEDTHESYSTEMANALYSISSTAGE,ANALYSISANDMASTERTHEFUNCTIONSTRUCTUREANDTHEWORKPRINCIPLEOFTHEWEBBROWSER,INTHESYSTEMDESIGNANDIMPLEMENTATION,MAINLYDESCRIBESTHEOVERALLSYSTEMDESIGN,SYSTEMFUNCTIONMODULEANALYSIS,THEMAINFUNCTIONSOFTHESYSTEMISINTRODUCEDANDTHESYSTEMDETAILEDDESIGNANDIMPLEMENTATIONPROCESSTHESTRONGPERTINENCE,FUNCTIONMODULEINBROWSERANALYSIS,MAINFUNCTIONANDREALIZATIONPROCESSTHESYSTEMUSESECLIPSEASTHEDEVELOPMENTTOOL,CALLEDJDIC,DEVELOPEDAFULLYFUNCTIONAL,WIDELYUSED,THEIROWNPERSONALBROWSERTHEFUNCTIONSOFTHESYSTEMAREACCESSTOTHEWEBPAGE,SAVEWEBPAGE,PRINTWEBPAGE,STOPTHECURRENTVISIT,REFRESHTHISPAGE,FORWEBPAGEKEYWORDSJAVAJDICCOMPUTERNETWORK目录摘要IABSTRACTII1绪论111课题背景112浏览器的发展现状1121主要浏览器发展历程1122目前主要浏览器313浏览器研究现状414相关概念5141JAVA概述5142JAVA桌面应用(JFRAME)7143JDIC类库8144JAVA网络通信10145JAVASAX解析122JAVA浏览器需求分析1421可行性分析14211技术可行性14212经济可行性14213操作可行性1422需求分析14221功能需求14222分析模块153系统结构与设计分析1631响应模式1632结构分析1633功能结构图1634模块划分174基于JAVA的浏览器的实现1841交互界面模块1842后退/前进模块1943刷新模块2044页面显示模块2045收藏夹模块215测试和运行2251测试与调试的基本概念2252测试时间2253软件测试的内容2354软件运行23结论25参考文献26致谢27外文原文28中文翻译381绪论11课题背景随着1946年世界上第一台电子计算机问世后的十多年时间内,由于价格很昂贵,电脑数量极少。早期所谓的计算机网络主要是为了解决这一矛盾而产生的,其形式是将一台计算机经过通信线路与若干台终端直接连接,我们也可以把这种方式看做为最简单的局域网雏形。随着网络时代的飞速发展与前进,切身感受到了它在生活中占据着越来越重要的地位,计算机软件硬件的快速跳跃式的发展,计算机广泛地应用于各行各业,包括医学,金融,教育,建筑等。但众所周知,单机的电脑并不能带来多大的益处,充其量不过是一台庞大存储设备或者说是一台快速计算的设备而已,只有能够联网的计算机才能发挥它的巨大优势,达到程序共享,资源共享,共同协作的目的。为了获取互联网上海纳百川的资讯,在网络的世界里找到自己想了解到的,自己想探索到的新知识,需要借助到一个工具,这就是我们每一个人都熟悉的浏览器。WEB浏览器把纯文本的HTML文件转变成图文混排,可理解性强的WEB页面,极大地推动了因特网的普及与发展。如今浏览器已经从90年代初单一的HTML文本解释器发展成可支持JAVA,JAVASCRIPT,VRML等多种语言诉系统软件,并成为众多网络应用系统的支撑平台。在我国,浏览器技术研究比较缓慢,具有自主版权的浏览器在市场上还很罕见。目前,很多浏览器的问世为人们所运用,利用INTERNET的资源和信息带来了巨大的方便,使人们更好的畅游在信息时代里。典型的WWW浏览器BROWSER有NETSCAPENAVIGATOR、MOSAIC、INTERNETEXPLORER、WINWEB、LYNX、OPERA、HOTJAVA等,它们适用于各种不同的环境。其中最为流行和普及的是INTERNETEXPLORER。它借助于和WINDOWS捆绑的独特优秀,已经成为市场占有率超过90的浏览器。12浏览器的发展现状121主要浏览器发展历程姆伯纳斯李(TIMBERNERSLEE)是第一个使用超文本来分享资讯的人。他于1990年发明了首个网页浏览器WORLDWIDEWEB。在1991年3月,他把这发明介绍给了在CERN工作的朋友。从那时起,浏览器的发展就和互联网的发展联系在了一起。当时,网页浏览器被视为能够处理CERN宠大电话簿的实用工具。在与用户互动的前题下,网页浏览器根据GOPHER和TELNET协议,允许所有用户能轻易地浏览别人所编写的网站。可是其后加入图像进浏览器的举动使之成为了互联网的“杀手级应用”。NCSAMOSAIC使互联网得以迅速发展。它最初是一个只在UNIX运行的图像浏览器;很快便发展到在APPLEMACINTOSH和MICROSOFTWINDOWS亦能运行。1993年9月发表了10版本。NCSA中MOSAIC项目的负责人MARCANDREESEN辞职并建立了网景通讯公司。网景公司在1994年10月发布了他们的旗舰产品NAVIGATOR(网景导航者),但仅在第二年NETSCAPE的优势就被削弱了。错失了互联网浪潮的微软在这个时候匆促的购入了SPYGLASS公司的技术,改成INTERNETEXPLORER,掀起了软件巨头微软和网景之间的浏览器大战,同时也加快了万维网的发展。最终,网景公司以开放源代码迎战,创造了MOZILLA,但此举未能挽回NETSCAPE的市场占有率。在1998年底美国在线收购了网景公司。在发展初期,MOZILLA计划为吸引大量开发者进入此项目,至2002年,它已发展成一个稳定而强大的互联网套件。MOZILLA10的出现被视为其里程碑。同年,衍生出PHOENIX(后改名FIREBIRD,最后又改为FIREFOX)。于是大家熟悉的浏览器FIREFOX10终于在2004年正式发布。当前虽然摆在广大互联网用户面前大大小小的网页浏览器如此之多,不过被全球大量用户使用的主流浏览器还是只有少数几款,包括微软的INTERNETEXPLORER、MOZILLA的FIREFOX、APPLE的SAFARI、GOOGLE的CHROME以及OPERA浏览器。1991年WORLDWIDEWEB浏览器发布这款由WEB之父TIMBERNERSLEE亲手设计的图形化浏览器还包含一个所见即所得HTML编辑器,为了避免同WWW混淆,这个浏览器后来改名为NEXUS。1993年MOSAIC发布INTERNET的流行应该归功于MOSAIC,这款浏览器将WEB带向了大众。诸如IE,FIREFOX一类的当代浏览器仍然在延用MOSAIC的图形化操作界面思想。1994年NETSCAPE成立MARCANDREESSEN带领MOSAIC的程序员成立了NETSCAPE公司,并发布了第一款商业浏览器NETSCAPENAVIGATOR。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引发第二场浏览器之战FIREFOX10推出。早在BETA测试期间就积累了大量人气的FIREFOX引发了第二场浏览器之战,当年年底,FIREFOX已经赢得74的市场份额。2006年IE7发布IE6发布后的第六年,迫于FIREFOX的压力,微软匆匆推出IE7应战,吸取了FIREFOX的一些设计思想,如标签式浏览,反钓鱼等。但这款浏览器现在看来并不成功。122目前主要浏览器微软的INTERNETEXPLORER、MOZILLA的FIREFOX、APPLE的SAFARI、GOOGLE的CHROME以及OPERA浏览器均为目前市面上主要流行的浏览器,其他浏览器较多借助他们的内核来实现。INTERNETEXPLORERINTERNETEXPLORER,原称MICROSOFTINTERNETEXPLORER6版本以前和WINDOWSINTERNETEXPLORER7,8,9,10版本,简称IE以下如无特殊说明,所有涉及MICROSOFTINTERNETEXPLORER或WINDOWSINTERNETEXPLORER的名称均用简称IE表示。在IE7以前中文直译为“网络探路者”,但在IE7以后便直接俗称“IE浏览器“。是美国微软公司推出的一款网页浏览器。IE开发计划开始于1994年夏天,微软为抵抗当时主流的网景NETSCAPENAVIGATOR,要在WINDOWS中开发适合自己的浏览器,但微软并没有时间从零开始。因此和SPYGLASS合作,于是IE从早期一款商业性的专利网页浏览器SPYGLASSMOSAIC派生出来,虽然SPYGLASSMOSAIC与NCSAMOSAIC首款应用得最广泛的网页浏览器甚为相似,但SPYGLASSMOSAIC则相对地较不出名并使用了NCSAMOSAIC少量的源代码。1996年,微软通过给予季度费用和部分收入从SPYGLASS中取得了SPYGLASSMOSAIC的源代码和授权。从而使IE逐渐成为微软专属软件。它采用的排版引擎俗称内核为TRIDENT。每一次新的IE版本发布,也标志着TRIDENT内核版本号的提升。FIREFOXMOZILLAFIREFOX,中文名通常称为“火狐”或“火狐浏览器”,是一个开源网页浏览器,使用GECKO引擎(非IE内核),支持多种操作系统如WINDOWS、MAC和LINUX。FIREFOX由MOZILLA基金会与社区数百个志愿者开发。早期源代码以GPL/LGPL/MPL三种授权方式发布,2012年1月3日起改用兼容GPL的MPL20授权发布。作为一款小巧的开源浏览器,他把自己的底层代码开放,让世界上成千上万的工程师给你开发软件,共同打造,有漏洞也会快速的补上。有很多使用的扩展,下载下来使用火狐非常方便,打个比方来说你可以下载一个高级计算器软件安装在工具栏里,对于日常工作很方便,也可以定制天气预报,另外还可以安装一些小插件,实现诸如图片批量下载以及其他一些小实用功能。FIREFOX支持非常多的网络标准,如标准通用标记语言下的子集HTML和XML、XHTML、SVG11(部份的)、CSS(除了标准之外,还有扩充的支持)、ECMASCRIPT(JAVASCRIPT)、DOM、MATHML、DTD、XSLT、XPATH和PNG图像文件(包含透明度支持)。在FIREFOX30ALPHA2时通过ACID2测试和ACID371/100项测试,FIREFOX31的版本可通过ACID393/100项测试,FIREFOX36达到ACID394/100的标准,到FIREFOX70版本更已达到ACID3100/100满分标准。SAFARISAFARI,苹果计算机的最新操作系统MACOSX中新的浏览器,用来取代之前的INTERNETEXPLORERFORMAC。SAFARI使用了KDE的KHTML作为浏览器的计算核心。该浏览器已支持WINDOWS平台,但是与运行在MACOSX上的SAFARI相比,有些功能出现丢失。SAFARI也是IPHONE手机、IPODTOUCH、IPAD平板电脑中IOS指定默认浏览器。苹果公司自己的内核,也是苹果的SAFARI浏览器使用的内核。使用WEBKIT引擎,包含WEBCORE排版引擎及JAVASCRIPTCORE解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软件,在GPL条约下授权,同时支持BSD系统的开发。所以WEBKIT也是自由软件,同时开放源代码。在安全方面不受IE、FIREFOX的制约,所以SAFARI浏览器在国内还是很安全的。限于MACOSX的使用不广泛和SAFARI浏览器曾经只是MACOSX的专属浏览器,这个内核本身应该说市场范围并不大;但似乎根据最新的浏览器调查表明,该浏览器的市场甚至已经超过了OPERA的PRESTO了当然这一方面得益于苹果转到X86架构之后的人气暴涨,另外也是因为SAFARI3终于推出了WINDOWS版的缘故吧。MAC下还有OMNIWEB、SHIIRA等人气很高的浏览器。CHROMEGOOGLECHROME,又称GOOGLE浏览器,是一个由GOOGLE(谷歌)公司开发的网页浏览器。该浏览器是基于其他开源软件所撰写,包括WEBKIT,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。软件的名称是来自于称作CHROME的网络浏览器图形使用者界面(GUI)。软件的BETA测试版本在2008年9月2日发布,提供50种语言版本,有WINDOWS、MACOSX、LINUX、ANDROID、IOS以及WINDOWSPHONE版本提供下载。2013年9月,CHROME已达全球份额的43,成为使用最广的浏览器。GOOGLECHROME的特点是简洁、快速。GOOGLECHROME支持多标签浏览,每个标签页面都在独立的“沙箱”内运行,在提高安全性的同时,一个标签页面的崩溃也不会导致其他标签页面被关闭。此外,GOOGLECHROME基于更强大的JAVASCRIPTV8引擎,这是当前WEB浏览器所无法实现的。另有手机版的CHROME浏览器,于2012年发布了CHROME浏览器移动版,提供IOS系统、安卓系统以及WINDOWSPHONE系统的CHROME浏览器,在保持浏览器原有特点的情况下,实现了多终端使用浏览器,具有共享收藏历史信息等功能,是手机浏览器的一次巨大突破。随着ANDROID系统的份额不断扩大而市场占有率不断飙升。GOOGLECHROME是一款免费软件,借鉴了苹果SAFARI的WEBKIT引擎、MOZILLA的FIREFOX及其他相关应用。13浏览器研究现状随着21世纪新时代的到来,网络越来越普及到各行各业,我们的生活,工作和学习已经和网络都有这息息相关的联系,而网页浏览器的存在无疑使我们对网络的使用更得心应手,如果说浏览器推动了网络的普及与发展,推动了信息社会和经济全球化的到来,那完全是没有任何夸张的。浏览器作为网络普及中的核心因素之一,它发展可以说是网络的发展的写照。浏览器技术的改进与更新,无疑是网络普及的重要推动力之一。目前运行于PC机上的较受欢迎的WWW浏览器有IE,NAVIGATOR,其主要特点有通过频道和人工输入地址来获取WEB站点资源;能够将最近和最常用的网友站点添加到收藏夹河保存在历史文件夹中;提供了键入WEB地址的帮助项及表格自动完成功能;提供缓存网页的功能;更新所选择地WEB站点并在空闲时浏览,支持脱机浏览功能;安全浏览WEB;支持不同的脚本语言;可以外挂其它程序来支持比如多媒体播放等。而传统浏览器的局限越来越突出出来。主要体现在网址获取能力差。一般我们通过人工输入来得到网址,这需要用户记忆网址。即浏览器提供了类似于收藏夹或书签之类的功能,也需通过手工加入网址,使用不够方便。语言翻译功能差。由于80以上的网站位于英语国家,使得网络信息主要以英文为主,这就给中国用户带来了不便,我们只能借助另外的软件来翻译。信息搜索能力差。INTERNET上的信息不但数量巨大,而且复杂,难以快速获取有用的信息,信息的发布与检索式网路信息服务的主要内容,而浏览器并没有提供一定的搜索能力,需借助于其他的搜索引擎。外挂程序的不足。当今浏览器的外挂程序仅限于对网友浏览的支持,如图像,动画播放等等。而用户需要的还包括文件下载上传,音乐欣赏等实用程序的支持。缺乏个性化服务。IE浏览器虽然内核稳定,能支持多种脚本,但在打开多个窗口时,会消耗大量的系统资源,使浏览速度变慢;而NAVIGATION兼容性太差,且都是单页浏览器,界面固定,不能随用户的喜爱而方便定制客户端界面智能化程度偏低。这是当前浏览器最大的不足,例如缺乏网页的自动分类,却反通过学习用户的配置而自动调整服务策略的能力等。从各方面来说,网页浏览器都在不断的扩张,它不仅是客户的互联网软件同时正在逐渐的往服务器领域扩张和渗入。最近几年,浏览器正在逐步的进军移动备,除了桌面浏览器,移动电话浏览器,移动手机浏览器也越来越为人们所熟悉,我相信未来的浏览器将会出现很多新功能,会又恨多新的标准出台。浏览器之未来展望很多WEB应用程序依靠JAVASCRIPT语言运行,基本所有浏览器都把JAVASCRIPT运行速度放在首位。通过先进技术,浏览器让每一台电脑既成为客户端也成为服务器,从此电脑之间可以直接通过网络进行点对点互动和信息共享,再也不需要通过第三方服务器中转。CSS样式和SVG等标准将提高浏览器的图形处理能力。4在用户的许可下,GEOLOCATION可设置的全局变量技术可以让网站知晓你的确切位置。14相关概念141JAVA概述JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SUNMICROSYSTEMS公司于1995年5月推出的JAVA程序设计语言和JAVA平台(即JAVAEE,JAVAME,JAVASE)的总称。JAVA自面世后就非常流行,发展迅速,对C语言形成了有力冲击。JAVA技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,JAVA更具备了显著优势和广阔前景。JAVA编程语言的风格十分接近C语言、C语言。JAVA是一个纯粹的面向对象的程序设计语言,它继承了C语言面向对象技术的核心。JAVA舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(OPERATOROVERLOADING)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在JAVA15版本中,JAVA又引入了泛型编程(GENERICPROGRAMMING)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。JAVA不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(BYTECODE),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了JAVA程序的性能。编辑JAVA源代码可以使用任何无格式的纯文本编辑器,在WINDOWS操作系统上可以使用微软记事本(NOTEPAD)、EDITPLUS等程序,在LINUX平台上可使用VI工具等。JAVA语言是易学的。JAVA语言的语法与C语言和C语言很接近,使得大多数程序员很容易学习和使用JAVA。另一方面,JAVA丢弃了C中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,JAVA语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。JAVA语言是强制面向对象的。JAVA语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为IMPLEMENTS)。JAVA语言全面支持动态绑定,而C语言只对虚函数使用动态绑定。总之,JAVA语言是一个纯的面向对象程序设计语言。JAVA语言是分布式的。JAVA语言支持INTERNET应用的开发,在基本的JAVA应用编程接口中有一个网络应用编程接口(JAVANET),它提供了用于网络应用编程的类库,包括URL、URLCONNECTION、SOCKET、SERVERSOCKET等。JAVA的RMI(远程方法激活)机制也是开发分布式应用的重要手段。JAVA语言是健壮的。JAVA的强类型机制、异常处理、垃圾的自动收集等是JAVA程序健壮性的重要保证。对指针的丢弃是JAVA的明智选择。JAVA的安全检查机制使得JAVA更具健壮性。JAVA语言是安全的。JAVA通常被用在网络环境中,为此,JAVA提供了一个安全机制以防恶意代码的攻击。除了JAVA语言具有的许多安全特性以外,JAVA对通过网络下载的类具有一个安全防范机制(类CLASSLOADER),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SECURITYMANAGER)让JAVA应用设置安全哨兵。JAVA语言是体系结构中立的。JAVA程序(后缀为JAVA的文件)在JAVA平台上被编译为体系结构中立的字节码格式(后缀为CLASS的文件),然后可以在实现这个JAVA平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。JAVA语言是可移植的。这种可移植性来源于体系结构中立性,另外,JAVA还严格规定了各个基本数据类型的长度。JAVA系统本身也具有很强的可移植性,JAVA编译器是用JAVA实现的,JAVA的运行环境是用ANSIC实现的。6JAVA语言是解释型的。如前所述,JAVA程序在JAVA平台上被编译为字节码格式,然后可以在实现这个JAVA平台的任何系统中运行。在运行时,JAVA平台中的JAVA解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。JAVA是性能略高的。与那些解释型的高级脚本语言相比,JAVA的性能还是较优的。JAVA语言是原生支持多线程的。在JAVA语言中,线程是一种特殊的对象,它必须由THREAD类或其子(孙)类来创建。通常有两种方法来创建线程其一,使用型构为THREADRUNNABLE的构造子将一个实现了RUNNABLE接口的对象包装成一个线程,其二,从THREAD类派生出子类并重写RUN方法,使用该子类创建的对象即为线程。值得注意的是THREAD类已经实现了RUNNABLE接口,因此,任何一个线程均有它的RUN方法,而RUN方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。JAVA语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为SYNCHRONIZED)。JAVA语言是动态的。JAVA语言的设计目标之一是适应于动态变化的环境。JAVA程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,JAVA中的类有一个运行时刻的表示,能进行运行时刻的类型检查。JAVA语言的优良特性使得JAVA应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。JAVA对对象技术的全面支持和JAVA平台内嵌的API能缩短应用系统的开发时间并降低成本。JAVA的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是JAVA企业应用编程接口(JAVAENTERPRISEAPIS)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。142JAVA桌面应用(JFRAME)图形用户界面(GRAPHICALUSERINTERFACE,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。JAVA的GUI程序的基本思路是以JFRAME为基础,它是屏幕上WINDOW的对象,能够最大化、最小化、关闭。SWING的三个基本构造块标签、按钮和文本字段;但是需要个地方安放它们,并希望用户知道如何处理它们。JFRAME类就是解决这个问题的它是一个容器,允许程序员把其他组件添加到它里面,把它们组织起来,并把它们呈现给用户。JFRAME实际上不仅仅让程序员把组件放入其中并呈现给用户。比起它表面上的简单性,它实际上是SWING包中最复杂的组件。为了最大程度地简化组件,在独立于操作系统的SWING组件与实际运行这些组件的操作系统之间,JFRAME起着桥梁的作用。JFRAME在本机操作系统中是以窗口的形式注册的,这么做之后,就可以得到许多熟悉的操作系统窗口的特性最小化/最大化、改变大小、移动。组成桌面在启动时显示,也是界面中最底层,有时也指代包括窗口、文件浏览器在内的“桌面环境”。在桌面上由于可以重叠显示窗口,因此可以实现多任务化。一般的界面中,桌面上放有各种应用程序和数据的图标,用户可以依此开始工作。桌面与既存的文件夹构成里面相违背,所以要以特殊位置的文件夹的参照形式来定义内容。比如在微软公司的WINDOWSXP系统中,各种用户的桌面内容实际保存在系统盘(默认为C盘)DOCUMENTSANDSETTINGS用户名桌面文件夹里。墙纸,即桌面背景。可以设置为各种图片和各种附件,成为视觉美观的重要因素之一。视窗应用程序为使用数据而在图形用户界面中设置的基本单元。应用程序和数据在窗口内实现一体化。在窗口中,用户可以在窗口中操作应用程序,进行数据的管理、生成和编辑。通常在窗口四周设有菜单、图标,数据放在中央。在窗口中,根据各种数据/应用程序的内容设有标题栏,一般放在窗口的最上方,并在其中设有最大化、最小化隐藏窗口,并非消除数据、最前面、缩进仅显示标题栏等动作按钮,可以简单地对窗口进行操作。单一文件界面(SINGLEDOCUMENTINTERFACE)在窗口中,一个数据在一个窗口内完成的方式。在这种情况下,数据和显示窗口的数量是一样的。若要在其他应用程序的窗口使用数据,将相应生成新的窗口。因此窗口数量多,管理复杂。多文件界面(MULTIPLEDOCUMENTINTERFACE)在一个窗口之内进行多个数据管理的方式。这种情况下,窗口的管理简单化,但是操作变为双重管理。标签多文件界面的数据管理方式中使用的一种界面,将数据的标题在窗口中并排,通过选择标签标题显示必要的数据,这样使得接入数据方式变得更为便捷。上述中,多文件界面主要是微软视窗系统采用。而在其他环境中,通常多是单文件界面,所以无所谓单一/多文件界面的称呼问题。菜单将系统可以执行的命令以阶层的方式显示出来的一个界面。一般置于画面的最上方或者最下方,应用程序能使用的所有命令几乎全部都能放入。重要程度一般是从左到右,越往右重要度越低。命定的层次根据应用程序的不同而不同,一般重视文件的操作、编辑功能,因此放在最左边,然后往右有各种设置等操作,最右边往往设有帮助。一般使用鼠标的第一按钮进行操作。即时菜单与应用程序准备好的层次菜单不同,在菜单栏以外的地方,通过鼠标的第二按钮调出的菜单称为“即时菜单”。根据调出位置的不同,菜单内容即时变化,列出所指示的对象目前可以进行的操作。图标显示在管理数据的应用程序中的数据,或者显示应用程序本身。数据管理程序,即在文件夹中用户数据的管理、进行特定数据管理的程序的情况下,数据通过图标显示出来。通常情况下显示的是数据的内容或者与数据相关联的应用程序的图案。另外,点击数据的图标,一般可以之间完成启动相关应用程序以后再显示数据本身这两个步骤的工作。应用程序的图标只能用于启动应用程序。按钮菜单中,利用程度高的命令用图形表示出来,配置在应用程序中,成为按钮。应用程序中的按钮,通常可以代替菜单。一些使用程度高的命令,不必通过菜单一层层翻动才能调出,极大提高了工作效率。但是,各种用户使用的命令频率是不一样的,因此这种配置一般都是可以由用户自定义编辑143JDIC类库JDESKTOPINTEGRATIONCOMPONENTS(JDIC),是一个开源的项目,目的是构建消除本机应用程序和JAVA等价物之间差距的组件。该项目是为了使用JAVA建立桌面应用程序而建立的JDIC单一的JAVAAPI允许应用程序接进本机操作系统特性,同时保持跨平台支持。它目前提供了本机WEB浏览器(INTERNETEXPLORER或MOZILLA)支持、系统托盘支持、文件扩展集成、应用程序启动与打印和其他桌面特性。JDESKTOPINTEGRATIONCOMPONENTS,或JDIC,是一个给JAVA开发人员提供通过交差平台API存取本地特性的包罗万象的项目。该项目由SUN的DESKTOP组启动,目的是让JAVA应用能更好地和它们所运行的桌面环境集成。为了能从开发人员那里得到想要的特性的快速反馈,他们将JDIC做成了开源项目。尽管目前没有计划,但JDIC团队正考虑把JDIC的特征加入JAVA核心类库的未来版本中去。如果程序员在WINDOWS平台中自己开发程序使用到JDIC,在自己的项目中导入相关的JAR包如JDICJAR,并将JDIC的JDICDLL和TRAYDLL放到系统JRE的BIN目录下具体操作如下如果你经常访问JAVANET,或者读过JAVAONE的新闻报道,你可能听过JDESKTOPINTEGRATIONCOMPONENTSJDIC。这些新的API终于能让JAVA开发人员做那些我们曾经羡慕本地同胞们所做的那些事情了。本文将给你一个有关JDIC特性的全面介绍,每一个特性都带有一个小例子,以及要迈出第一步该下载些什么的一个列表。除了SAVERBEANS子项目我们要在第二部分介绍外,我们将试验所有的APIJDESKTOPINTEGRATIONCOMPONENTS,或JDIC,是一个给JAVA开发人员提供通过交差平台API存取本地特性的包罗万象的项目。该项目由SUN的DESKTOP组启动,目的是让JAVA应用能更好地和它们所运行的桌面环境集成。为了能从开发人员那里得到想要的特性的快速反馈,他们将JDIC做成了开源项目。尽管目前没有计划,但JDIC团队正考虑把JDIC的特征加入JAVA核心类库的未来版本中去桌面组件桌面组件是最简单和可能是最有用的JDIC组件了。它专用于基本的桌面服务,如在正确的编辑器里打开一个文件,新建一封EMAIL,或者把一个URL发送到默认的WEB浏览器。构建这些东西需要做很多的工作,但使用起来却非常容易。如果你想告诉操作系统打开一个WORD文档,调用DESKTOPOPENNEWFILE“RESUMEDOC”就可以了,就这么简单。ORGJDESKTOPJDICDESKTOP包只有三个类DESKTOP,MESSAGE和DESKTOPEXCEPTION。DESKTOP类是静态的不能被实例化。它有几个打开、编辑和打印文件的方法。你也能打开一个新的EMAIL和用文本填充它。这就是MESSAGE使用的地方,它能让你设置接收人,邮件体,附件,和其他部分。有关DESKTOP组件包最好的事就是它用起来是多么地简单。你不需要注册任何特殊的驱动或者修改基于当前平台的配置。这些东西都已经在幕后做好了。只要你的JDICJAR文件在你的类路径中和本地库在你的库路径中通常你把它和JAR文件放在一起,代码就可以工作了。文件类型组件JDIC的下一个核心组件是文件类型包,它用来设置文件类型关联。这意味着你能告诉操作系统什么文件用什么程序打开,例如总是用WORD打开文本文件而不是用写字板打开。用这个API你能查询、设置和删除基于文件扩展名和MIME类型的文件类型关联。假如那个文件类型通常是某种操作系统上特有的,检索关联或者注册应用本身而不是设置关联时,这个API显得更为有用。例如,在WINDOWS下,通常的文本文件的关联是调用在众所周知的目录下的NOTEPADEXE。在GNOME下,它可能调用/USR/LOCAL/BIN/GEDIT。由于这是和系统相关的,除了把JAVA应用绑定到自己文件的类型,设置关联可能不是非常有用。尽管如此,不管你用它做什么,文件类型组件通过处理注册表和MIME类型数据的方式为你处理了所有繁重的工作。MAIN方法的前两行创建了一个将会用NOTEPADEXE打开文件用1代替的ACTION。之后的四行在ACTION和扩展名为MCHAT的文件之间创建了关联。在过去,大多数操作系统专门依赖于文件扩展名或者所有的元数据来确定文件类型。然而在今天,大多数操作系统倾向于为所有文件设置MIME,因此,现在开始使用它是有益的。最后两行实际上是在系统上注册关联。在使用所有的JDICAPI时,只要本地库在你的库路径上,让它工作起来你不需要做任何特别的事情。浏览器组件JDIC的第三个主要组件是浏览器组件。不象前边的两个,它们只是让你存取系统服务,这个组件给你了一个真正在图形应用里使用的AWT器件。以前,你可以使用第三方的嵌入式组件或纯JAVA的浏览器,但JDIC让你把用户默认的WEB浏览器嵌入到你的应用中,这些为我们创造了很多机会。现在写一些有全面WEB支持的RSS阅读器变成了可能的事情。由于你不必把本地浏览器包含进你的应用中,下载速度也更快了。浏览器组件API可以让你访问几个浏览器事件以及在历史记录上的控制向前,后退,刷新。未来修订的API版本希望能提供更多存取浏览器和任意装载的文档的功能。记住WEBBROWSER是个本地AWT组件,因此你可能陷入与SWING结合的困境。混合它们的两个规则是1不要让SWING和AWT组件重叠和2在你的菜单上调用SETLIGHTWEIGHTPOPUPENABLEDFALSE否则它们将消失在浏览器组件后边。浏览器组件将立刻使用用户的默认WEB浏览器,它们通常是INTERNETEXPLORER或MOZILLA。你不能象使用JREX那样把MOZILLA的必须的部分和你的应用绑在一起。这种做法可能在WINDOWS上行得通,IE绝对是可以的,但在LINUX上有更多的问题,因为它上边的默认浏览器不一定是MOZILLA例如,在KDE上它可能是KONQUORER。希望这些问题随着项目的成熟能够解决,但目前它对许多项目是很有用的。包装器组件不象其他的JDIC,包装器模块不是API,而是把JNLPJAVAWEBSTART应用转换成本地安装程序LINUX上是RPMS,SOLARIS上是PKGS,WINDOWS上是MSIS的一组命令行工具。这不是说象JSMOOTH或JEXEPACK那样把你的应用转换成EXE;它仅仅为WEBSTART应用提供点击安装的功能。在程序安装之后,它将使用JNLP通过INTERNET更新自己,做WEBSTART应用能做的所有的其他事情。包装器组件需要J2SE50和本地工具。对WINDOWS而言,你需要安装MICROSOFT的MSISDK。一旦你的环境建立了起来,就能使用命令行工具JNLP2MSI,JNLP2RPM,和JNLP2PKG把你的WEBSTART应用转换成与平台相关的安装程序。系统托盘托盘图标API曾是一个孵化中项目,但由于JAVANET社区的勤奋努力,它已经成熟并把它提升到一个完全的JDIC组件的地位。假如你的操作系统有托盘的概念的话,它的目的是在屏幕的右下角创建小程序状态图标。实际上,这种操作系统是指WINDOWS和LINUX。MACOSX用户则没有这个运气。它也支持弹出菜单和为图标提供自动工具提示。象其他JDIC一样,系统托盘支持需要本地代码,但你可以用JAVAAPI编码来使用预编译的本地库144JAVA网络通信JAVA较常用的网络通信技术较多为SOCKET技术。所谓SOCKET通常也称作“套接字“,应用程序通常通过“套接字“向网络发出请求或者应答网络请求。以J2SDK13为例,SOCKET和SERVERSOCKET类库位于JAVANET包中。SERVERSOCKET用于服务器端,SOCKET是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个SOCKET实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是SOCKET还是SERVERSOCKET它们的工作都是通过SOCKETIMPL类及其子类完成的。在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“IP地址”可以唯一标识网络中的主机,而传输层的“协议端口”可以唯一标识主机中的应用程序(进程)。这样利用三元组(IP地址,协议,端口)就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互。面对众多网络协议,我们可能无从选择。不过要是事先了解到网络协议的主要用途,就可以有针对性的选择了。以下是几种常用的网络协议NETBEUI(NETBIOSENHANCEDUSERINTERFACE)网络基本输入输出系统扩展用户接口NETBEUI协议是IBM于1985年提出。NETBEUI主要为20到200个工作站的小型局域网设计的,用于NETBEUI、LANMAN网、WINDOWSFORWORKGROUPS及WINDOWSNT网。NETBEUI是一个紧凑、快速的协议,但由于NETBEUI没有路由能力,即不能从一个局域网经路由器到另一个局域网,已不能适应较大的网络。如果需要路由到其他局域网,则必须安装TCP/IP或IPX/SPX协议。IPX/SPX(INTERNETWORKPACKETEXCHANGE/SEQUENTIALPACKETEXCHANGE)互连网包交换/顺序包交换它是由NOVELL提出的用于客户/服务器相连的网络协议。使用IPX/SPX协议能运行通常需要NETBEUI支持的程序,通过IPX/SPX协议可以跨过路由器访问其他网络。HDLC(HIGHLEVELDATALINKCONTROL)高层数据链路协议它是一组用于在网络结点间传送数据的协议。在HDLC中,数据被组成一个个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论