




免费预览已结束,剩余44页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录1. 序言111建立行政审批电子监察系统的意义. . . . . . . . . . . . . . . . . . . . .1111什么是行政审批电子监察?. . . . . . . . . . . . . . . . . .1112行政审批电子监察系统的作用. . . . . . . . . . . . . . . .1113开发行政审批电子监察系统的必要性. . . . . . . . . .112为什么要选用ajax?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22开发工具的简介及特点. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32.1. ajax 简介. . . . . . . . . . . . . . . . . . . . . . . . . . .4211 .web 应用简史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4212. 浏览器简史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4213. web应用的发展历程. . . . . . . . . . . . . . . . . . . . . . . . . cgi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. javascript. . . . . . . . . . . . . . . . . . . . . . . . . . . .. servlet、asp和php. . . . . . . . . . . . . . . . . . . . . .. flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. dhtml革命. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. xml衍生语言. . . . . . . . . . . . . . . . . . . . . . . . . . .. 基本问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ajax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19214. 可用性问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24215. 相关技术. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26216. 使用场合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27217. 设计考虑. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28218. 小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.2.xmlhttprequest对象概述. . . . . . . . . . . . . . . . . . . . . . . . . . 303. 利用ajax进行设计323.1分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .323.1.1.典型的行政审批流程. . . . . . . . . . . . . . . . . .323.1.2. 带电子监察的行政审批系. . . . . . . . . . . .333.1.3. 电子监察过程. . . . . . . . . . . . . . . . . . . . .343.1.4. 理解ajax 异步过程. . . . . . . . . . . . . . . . .353.2. 实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .373.2.1. 创建xmlhttprequest对象373.2.2. 建立异步连接383.2.3. 注册回调函数393.2.4. 发送异步请求393.2.5. 定义回调函数393.2.6. 如何实现实时433.2.7. 完整的n-s-z图443.3. 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .444. 结束语45参考文献46(行政审批)电子监察系统的分析和实现1. 序言11建立行政审批电子监察系统的意义111什么是行政审批电子监察?电子监察就是行政监察机关运用现代电子网络技术,依托行政审批流程管理电子政务网络系统,对行政机关及其工作人员实施的行政审批行为进行实时、全程和自动监控,依据监控结果作出绩效评估,并对发现的突出问题提出监察建议或者作出监察决定的活动。简言之,就是对网上行政审批行为进行网上监察的活动。它是在电子政务迅猛发展的新形势下,行政监察机关创新监察方式,不断与时俱进的具体表现。112行政审批电子监察系统的作用为加强行政审批监管,提高行政效能,建立了行政审批电子监察系统,较好地发挥了行政监察的职能作用,有效规范了行政审批行为,推进了依法行政。一是实行过程控制,强化监察职能。电子监察系统运用网络技术,使行政监察方式实现了事前、事中、事后监察相统一,起到了超前防范、动态监管和硬性约束的作用。将廉政监察、效能监察和执法监察融为一体,进一步提高了监察效能。二是规范审批行为,促进了依法行政。电子监察系统对每项审批流程进行了严格规定,促进了窗口单位及工作人员按法定程序办事,及时发现和纠正违反法定程序、暗箱操作等违纪违法行为,使审批过程“看得见、管得住”,促进了部门的依法行政。三是加强绩效考核,提高了行政效能。电子监察系统通过统计分析系统和绩效评估系统,对单位的行政绩效进行量化评分。同时,可通过不同单位之间的对比分析和同一单位的得分变化分析,及时发现行政审批中存在的薄弱环节,促进行政效能的提高。四是发挥治本功能,推进了惩防体系建设。113开发行政审批电子监察系统的必要性开展行政审批电子监察工作的必要性、重要性,概括地讲主要有二点:一是不断深化改革的需要。全国各城市行政服务中心作为市源头治腐、推进行政审批制度改革的重要载体,在建立以来,顺时应势,不断改革创新,先后经历了集中办公、便民服务阶段;流程管理、规范审批阶段;现在全国各地政府部门都相继开发了行政审批网络系统,使中心的改革进入了电子政务网上审批阶段。这几年以来,为了加强对网上行政审批行为的监督,提高行政审批效能,建立网上监察系统、开展行政审批电子监察工作,很自然地成了各地各市不断深化中心改革、进一步加强中心建设所必须采取的相应改革措施。二是建设经济强市、构建和谐是现代化市政管理的需要。进一步深化审批制度改革,提高行政效能,优化发展环境,是为促进城市经济社会又好又快发展的服务。电子政务建设是信息化建设的“领头羊”,是国民经济和神龛信息化的重要领域之一,随着政府行政审批改革的不断深化,实现行政审批网上处理越来越成为趋势和必然。曾培炎在2006年6月12日全国电子政务工作座谈会上指出:“十一五”时期,电子政务建设和主要目标是:初步建立信息资源公开和共享机制。政府门户网站成为政府信息公开的重要渠道,50%以上的行政许可项目能够实现在线处理。电子政务要在提高公共服务水平和监管能力、降低行政成本等方面发挥更大的作用。同年7月,中纪委、监察部、国信办、审改办等四部门联合下发了关于开展行政审批电子监察工作的通知,行政审批电子监察工作信息化的深入进行,建立以业务部门的行政审批业务系统为基础、以行政审批电子监察系统为核心的行政审批电子监察体系,优化审批流程,加强动态监管,切实提高行政审批部门的工作效率和服务水平。12为什么要选用ajax?目前,编写应用程序时有两种基本的选择:1) 桌面应用程序 2) web 应用程序 两者是类似的,桌面应用程序通常以 cd 为介质(有时候可从网站下载)并完全安装到您的计算机上。桌面应用程序可能使用互联网下载更新,但运行这些应用程序的代码在桌面计算机上。web 应用程序运行在某处的 web 服务器上 毫不奇怪,要通过 web 浏览器访问这种应用程序。不过,比这些应用程序的运行代码放在何处更重要的是,应用程序如何运转以及如何与其进行交互。桌面应用程序一般很快(就在您的计算机上运行,不用等待互联网连接),具有漂亮的用户界面(通常和操作系统有关)和非凡的动态性。可以单击、选择、输入、打开菜单和子菜单、到处巡游,基本上不需要等待。另一方面,web 应用程序是最新的潮流,它们提供了在桌面上不能实现的服务(比如 a 和 ebay)。但是,伴随着 web 的强大而出现的是等待,等待服务器响应,等待屏幕刷新,等待请求返回和生成新的页面。显然这样说过于简略了,但基本的概念就是如此。在一般的请求/响应模型中,比如 web 1.0,客户机(浏览器或者本地机器上运行的代码)向服务器发出请求。该请求是同步的,换句话说,客户机等待服务器的响应。当客户机等待的时候,至少会用某种形式通知您在等待:1)沙漏(特别是 windows 上)。 2)旋转的皮球(通常在 mac 机器上)。 3)应用程序基本上冻结了,然后过一段时间光标变化了。 这正是 web 应用程序让人感到笨拙或缓慢的原因 缺乏真正的交互性。按下按钮时,应用程序实际上变得不能使用,直到刚刚触发的请求得到响应。如果请求需要大量服务器处理,那么等待的时间可能很长。而基于ajax的异步请求不用等待服务器响应。发送请求后应用程序继续运行。用户仍然可以在 web 表单中输入数据,甚至离开表单。没有旋转的皮球或者沙漏,应用程序也没有明显的冻结。服务器悄悄地响应请求,完成后告诉原来的请求者工作已经结束。结果是,应用程序感觉不 那么迟钝或者缓慢,而是响应迅速、交互性强,感觉快多了。因此,ajax 尝试建立桌面应用程序的功能和交互性,与不断更新的 web 应用程序之间的桥梁。可以使用像桌面应用程序中常见的动态用户界面和漂亮的控件,不过是在 web 应用程序中。目前,基于ajax的行政审批电子监察系统还是个空白。2. 开发工具的简介及特点:什么是ajax呢?下面我们就来简单的介绍一下ajax!ajax并不是一种技术。它实际上是几种已经在各自领域大行其道技术的强强结合。ajax混合了:*基于xhtml/css*由dom(documentobjectmodel)实现动态显示与交互*通过xml和xslt进行数据交换及处理*使用javascript整合上述技术 客观一点的说ajax能够实现不刷新浏览器窗口(当然更不用安装额外的插件)而满足用户的操作,现在一些看上去很cool的网站,很多是用这项技术实现的,其中包括:orkut、gmail、googlegroup、googlesuggest、googlemaps、flickr、a9.com等。2simple的co-mment系统虽然没有用到xml/xslt,其理念已经暗合容ajax,实现了不刷新网页提供动态内给用户。21ajax简介ajax技术可以提供高度交互的web应用,给予用户更丰富的页面浏览体验。下面重点介绍一下ajax及相关的工具和技术,主要内容包括xmlhttprequest对象及其属性和方法、发送请求和处理响应、构建完备的ajax开发工具、使用jsunit测试javascript、分析javascript调试工具和技术,以及ajax开发模式和框架等。2.11web 应用简史混沌初开,一切都那么简单。为了连接美国的少数几个顶尖研究机构,人们设计了最早的“internet”,以便共同开展科学研究。不论是图书馆员、核物理学家,还是计算机科学家,都必须学习一个相当复杂的系统。1962年,麻省理工学院(mit)的j.c.r. licklider最早提出他的“galactic network”(超大网络)思想时,firefox和ie之类的便捷工具连概念都未产生。licklider后来继续在美国国防高级研究计划局(darpa)从事计算机研究,在那里他积极地宣扬网络化思想的重要性。几乎与此同时,mit的leonard kleinrock和lawrence g. roberts正在开展分组交换理论的研究,这是计算机联网的一个核心概念。在thomas merrill的帮助之下,roberts于1965年进而创建了第一个广域网,他通过一个拨号连接使马萨诸塞州的一台tx-2连上了加利福尼亚州的一台q-32。1966年底,roberts带着他的实验结果来到darpa,在这里他构思了高级研究项目管理网络(advanced research projects administration network,arpanet)的计划。此时,kleinrock正在加州大学洛杉矶分校网络测量中心(network measurement center),这里被选作arpanet的第一个节点。正是在这里,1969年bbn公司成功地安装了第一个分组交换器,称为接口消息处理器(interface message processors,imp)。斯坦福研究中心被选为第二个节点,1969年10月,在此首次实现了主机到主机的消息交换。此后不久,又将加州大学圣巴巴拉分校和犹他大学增加为节点,这就是我们现在所称因特网的前身。这个时期小型机刚开始出现,dec公司推出了pdp-1,其后又相继推出了pdp-8、pdp-11和vax-11/780,并取得了巨大成功。计算机能力得到了极大增强,而且使用也越来越方便,不像最初只有极少的几台大型机时,人们须排队使用。计算机已经更加平民化;不过,这时个人计算机革命还未到来。最初,研究人员认为tcp协议只适用于大型系统,因为tcp就是为大型系统设计的。不过,麻省理工学院david clark的研究小组发现,工作站也可以与大型机互联。clark的研究,再加上20世纪80年代和90年代个人计算机领域的爆炸式发展,为网络的发展铺平了道路。20世纪80年代出现了几个大变化。随着主机数量从很少发展到成千上万,需要为主机指定不同的名字,这样人们就不用费劲地去记它们的数字地址。这个变化,以及主机数量的飞速增长,催生了dns。另外,arpanet从使用ncp转为使用tcp/ip协议,后者是军方使用的标准协议。到了20世纪80年代中期,因特网已经建成为一个连接不同研究人员群体的平台,而且其他网络也开始出现:美国国家航空航天局(nasa)创建了span;美国能源部建立了mfenet来研究磁聚变能源,另外在美国国家科学基金会(national science foundation)的资助下,还创建了csnet来开展计算机科学研究。1989年,欧洲粒子物理研究中心(cern)的tim berners-lee提出了一个很有意思的概念。他认为,与其简单地引用其他人的著作,不如进行实际的链接呢?读一篇文章时,读者可以打开所引用的其他文章。超文本(hypertext)当时相当流行,berners-lee还利用了他先前在文档和文本处理方面的研究成果,发明了标准通用标记语言(standard generalized markup language,sgml)的一个子集,称为超文本标记语言(hypertext markup language,html)。html的妙处在于,它能将有关文本显示方式的信息与具体显示的实现相分离。berners-lee不仅创建了一个称为超文本传输协议(hypertext transfer protocol,http)的简单协议,还发明了第一个web浏览器,叫做worldwideweb。2.12浏览器简史提到web浏览器,大多数人都会想到无处不在的microsoft internet explorer,直到最近像firefox、safari和opera之类的浏览器日益兴起,这种情况才稍有改观。许多新手可能会误认为ie是市场上的第一个浏览器,其实不然。实际上,第一个web浏览器出自berners-lee之手,这是他为next计算机创建的(这个web浏览器原来取名叫worldwideweb,后来改名为nexus),并在1990年发布给cern的人员使用。berners-lee和jean-francois groff将worldwideweb移植到c,并把这个浏览器改名为libwww。20世纪90年代初出现了许多浏览器,包括nicola pellow编写的行模式浏览器(这个浏览器允许任何系统的用户都能访问internet,从unix到microsoft dos都涵盖在内),还有samba,这是第一个面向macintosh的浏览器。1993年2月,伊利诺伊大学urbana-champaign分校美国国家超级计算应用中心的marc andreessen和eric bina发布了unix版本的mosaic。几个月之后,aleks totic发布了mosaic的macintosh版本,这使得mosaic成为第一个跨平台浏览器,它很快得到普及,并成为最流行的web浏览器1。这项技术后来卖给了spyglass,最后又归入microsoft的门下,并应用在internet explorer中。1993年,堪萨斯大学的开发人员编写了一个基于文本的浏览器,叫做lynx,它成为了字符终端的标准。1994年,挪威奥斯陆的一个小组开发了opera,到1996年这个浏览器得到了广泛使用。1994年12月,netscape发布了mozilla的1.0版,第一个盈利性质的浏览器从此诞生。2002年又发布了一个开源的版本,这最终发展为2004年11月发布的、现在十分流行的firefox浏览器。 当microsoft发布windows 95时,ie 1.0是作为microsoft plus!包的一部分同时发布的。尽管这个浏览器与操作系统集成在一起,但大多数人还是坚持使用netscape、lynx或opera。ie 2.0有了很大起色,增加了对cookie、安全套接字层(secure socket layer,ssl)和其他新兴标准的支持。2.0版还可以用于macintosh,从而成为microsoft的第一个跨平台浏览器。不过,大多数用户还是很执着,仍然坚持使用他们习用的浏览器。不过到了1996年夏天,microsoft发布了ie 3.0版。几乎一夜之间,人们纷纷拥向ie。当时,netscape的浏览器是要收费的,microsoft则免费提供ie。关于浏览器领域谁主沉浮,因特网社区发生了两极分化,很多人担心microsoft会像在桌面领域一样,在web领域也一统天下。有些人则考虑到安全因素果然不出所料,发布3.0版9天之后就报告了第一个安全问题。但是到1999年发布ie 5时,它已经成为使用最广的浏览器2.13web应用的发展历程最初,所有web页面都是静态的,用户请求一个资源,服务器再返回这个资源。什么都不动,什么都不闪。坦率地讲,对于许多web网站来说,这样也是可以的,这些网站的web页面只是电子形式的文本,在一处生成,内容固定,再发布到多处。在浏览器发展的最初阶段,web页面的这种静态性不成问题,科学家只是使用因特网来交换研究论文,大学院校也只是通过因特网在线发布课程信息。企业界还没有发现这个新“渠道”会提供什么商机。实际上,以前公司主页显示的信息通常很少,无非是一些联系信息或者只是一些文档。不过没过多久,web用户就开始有新的要求了,希望能得到更动态的网上体验。个人计算机成为企业不可或缺的资源,而且从个人宿舍到住家办公室开始出现越来越多的计算机。随着windows 95的问世,随着人们已经领教了corel wordperfect和microsoft excel丰富的功能,用户的期望也越来越高。2.131 cgi要让web更为动态,第一个办法是公共网关接口(common gateway interface,cgi)。与静态的web获取不同,使用cgi可以创建程序,当用户发出请求时就会执行这个程序。假设要在web网站上显示销售的商品,你可以利用cgi脚本来访问商品数据库,并显示结果。通过使用简单的html表单和cgi脚本,可以创建简单的网上店面,这样别人就可以通过浏览器来购买商品。编写cgi脚本可以用多种语言,从perl到visual basic都可以,这使得掌握不同编程语言的人都能编写cgi脚本。不过,要创建动态的web页面,cgi并不是最安全的方法。如果采用cgi,将允许别人在你的系统上执行程序。大多数情况下这可能没有问题,但是倘若某个用户有恶意企图,则很可能会利用这一点,让系统运行你本来不想运行的程序。尽管存在这个缺陷,到如今cgi仍在使用。2.132 applet很显然,cgi可以有所改进。1995年5月,sun公司的john gage和andreessen(目前在netscape通信公司)宣布一种新的编程语言诞生,这就是java。netscape navigator为这种新语言提供了支持,最初是为了支持机顶盒。(你可能原认为最早涉足智能家居的公司是microsoft和sony其实不然。)就像所有革命都机缘巧合一样,java和因特网的出现恰到好处,在适当的时间、适当的地点横空出世,java在web上发布仅几个月,就已经有成千上万的人下载。由于netscape的navigator支持java,动态web页面掀开了新的一页:applet时代到来了。applet允许开发人员编写可嵌入在web页面上的小应用程序。只要用户使用支持java的浏览器,就可以在浏览器的java虚拟机(java virtual machine,jvm)中运行applet。尽管applet可以做很多事情,但它也存在一些限制:通常不允许它读写文件系统,它也不能加载本地库,而且可能无法启动客户端上的程序。除了这些限制外,applet是在一个沙箱安全模型中运行的,这是为了有助于防止用户运行恶意代码。对许多人来说,最初接触java编程语言就是从applet开始的,当时这是创建动态web应用的一种绝好的方法。applet允许你在浏览器中创建一个胖客户应用,不过要在平台的安全限制范围内。当时,在很多领域都广泛使用了applet,但是,web社区并没有完全被applet“征服”2。胖客户的开发人员都很熟悉一个问题:必须在客户端上部署适当的java版本。因为applet在浏览器的虚拟机中运行,所以开发人员必须确保客户端安装了适当版本的java。尽管这个问题也可以解决,但它确实妨碍了applet技术的进一步推广。而且如果applet写得不好,很可能对客户主机造成影响,这使许多客户对于是否采用基于applet的解决方案犹豫不定。如果你还不太熟悉applet,请看图1-1,图中显示了sun公司提供的时钟applet。图1-1sun的时钟applet2.133 javascript与此同时,netscape创建了一种脚本语言,并最终命名为javascript(建立原型时叫做mocha,正式发布之前曾经改名为livewire和livescript,不过最后终于确定为javascript)。设计javascript是为了让不太熟悉java的web设计人员和程序员能够更轻松地开发applet(当然,microsoft也推出了与javascript相对应的脚本语言,称为vbscript)。netscape请brendan eich来设计和实现这种新语言,他认为市场需要的是一种动态类型脚本语言。由于缺乏开发工具,缺少有用的错误消息和调试工具,javascript很受非议,但尽管如此,javascript仍然是一种创建动态web应用的强大方法。最初,创建javascript是为了帮助开发人员动态地修改页面上的标记,以便为客户提供更丰富的体验。人们越来越认识到,页面也可以当作对象,因此文档对象模型(document object model,dom)应运而生。刚开始,javascript和dom紧密地交织在一起,但最后它们还是“分道扬镳”,并各自发展。dom是页面的一个完全面向对象的表示,该页面可以用某种脚本语言(如javascript或vbscript)进行修改。最后,万维网协会(world wide web consortium,w3c)介入,并完成了dom的标准化,而欧洲计算机制造商协会(ecma)批准javascript作为ecmascript规约。根据这些标准编写的页面和脚本,在遵循相应原则的任何浏览器上都应该有相同的外观和表现。在最初的几年中,javascript的发展很是坎坷,这是许多因素造成的。首先,浏览器支持很不一致,即使是今天,同样的脚本在不同浏览器上也可能有不同的表现;其次,客户可以自由地把javascript关闭,由于存在一些已知的安全漏洞,往往鼓励用户把javascript关掉。由于开发javascript很有难度(你会用alert吗?),许多开发人员退避三舍,有些开发人员干脆不考虑 javascript,认为这是图形设计人员使用的一种“玩具”语言。许多人曾试图使用、测试和调试复杂的javascript,并为此身心俱疲,所以大多数人在经历了这种痛苦之后,最终只能满足于用javascript创建简单的基于表单的应用。2.134 servlet、asp和php哦,太多了!尽管applet是基于web的,但胖客户应用存在的许多问题在applet上也有所体现。在大量使用拨号连接的年代(就算是今天,拨号连接也很普遍),要下载一个复杂applet的完整代码,要花很多时间,用户不能承受。开发人员还要考虑客户端上的java版本,有些虚拟机还有更多的要求3。理想情况下只需提供静态的web页面就够了,毕竟,这正是设计因特网的本来目的。当然,尽管静态页面是静态的,但是如果能在服务器上动态地生成内容,再把静态的内容返回,这就太好了。在java问世一年左右,sun引入了servlet。现在java代码不用再像applet那样在客户端浏览器中运行了,它可以在你控制的一个应用服务器上运行。这样,开发人员就能充分利用现有的业务应用,而且,如果需要升级为最新的java版本,只需要考虑服务器就行了。java推崇“一次编写,到处运行”,这一点使得开发人员可以选择最先进的应用服务器和服务器环境,这也是这种新技术的另一个优点。servlet还可以取代cgi脚本。servlet向前迈出了很大一步。servlet提供了对整个java应用编程接口(api)的完全访问,而且提供了一个完备的库可以处理http。不过,servlet不是十全十美的。使用servlet设计界面可能很困难。在典型的servlet交互中,先要从用户那里得到一些信息,完成某种业务逻辑,然后使用一些“打印行”创建html,为用户显示结果。代码清单1-1所示的代码就相当常见。代码清单1-1简单的servlet代码response.setcontenttype(text/html;charset=utf-8); printwriter out = response.getwriter(); out.println(); out.println(); out.println(servlet simpleservlet); out.println(); out.println(); out.println(hello world); out.println(imagine if this were more complex.); out.println(); out.println(); out.close();以上这一小段代码可以生成图1-2所示的一个相当简单的web页面。图1-2代码清单1-1中简单servlet的输出servlet不仅容易出错,很难生成可视化显示,而且还无法让开发者尽展其才。一般地,编写服务器端代码的人往往是软件开发人员,他们只是对算法和编译器很精通,但不是能设计公司精美网站的图形设计人员。业务开发人员不仅要编写业务逻辑,还必须考虑怎么创建一致的设计。因此,很有必要将表示与业务逻辑分离。因此jsp(javaserver pages)出现了。在某种程度上,jsp是对 microsoft的 active server pages (asp)做出的回应。microsoft从sun在servlet规约上所犯的错误汲取了教训,并创建了asp来简化动态页面的开发。microsoft增加了非常好的工具支持,并与其web服务器紧密集成。jsp和asp的设计目的都是为了将业务处理与页面外观相分离,从这个意义上讲,二者是相似的。虽然存在一些技术上的差别(sun也从microsoft那里学到了教训),但它们有一个最大的共同点,即web设计人员能够专心设计页面外观,而软件开发人员可以专心开发业务逻辑。代码清单1-2显示了一个简单的jsp。代码清单1-2简单的jsp hello world hello world this code is more familiar for web developers. 这个代码会生成图1-3所示的输出。图1-3简单jsp的输出当然,microsoft和sun并没有垄断服务器端解决方案。还有许多其他的方案在这个领域都有一席之地,如php和coldfusion等等。有些开发人员喜欢新奇的工具,还有一些则倾向于更简单的语言。目前来看,所有这些解决方案完成的任务都是一样的,它们都是要动态生成html。在服务器端生成内容可以解决发布问题。不过,与使用胖客户或applet所做的工作相比,用户从原始html得到的体验就太过单调和苍白了。下面几节将介绍几种力图提供更丰富用户体验的解决方案。2.135 flash并不是只有microsoft和sun在努力寻找办法来解决动态web页面问题。1996年夏天,futurewave发布了一个名叫futuresplash animator的产品。这个产品起源于一个基于java的动画播放器,futurewave很快被macromedia兼并,macromedia则将这个产品改名为flash。利用flash,设计人员可以创建令人惊叹的动态应用。公司可以在web上发布高度交互性的应用,几乎与胖客户应用相差无几(见图1-4)。不同于applet、servlet和cgi脚本,flash不需要编程技巧,很容易上手。在20世纪90年代末期,掌握flash是一个很重要的特长,因为许多老板都非常需要有这种技能的员工。不过,这种易用性也是有代价的。图1-4flash应用像许多解决方案一样,flash需要客户端软件。尽管许多流行的操作系统和浏览器上都内置有所需的shockwave播放器插件,但并非普遍都有。虽然能免费下载,但由于担心感染病毒,使得许多用户都拒绝安装这个软件。flash应用可能还需要大量网络带宽才能正常地工作,另外,由于没有广泛的宽带连接,flash的推广受到局限(因此产生了“跳过本页”之类的链接)。虽然确有一些网站选择建立多个版本的web应用,分别适应于不同的连接速度,但是许多公司都无法承受支持两个或更多网站所增加的开发开销。总之,创建flash应用需要专用的软件和浏览器插件。applet可以用文本编辑器编写,而且有一个免费的java开发包,flash则不同,使用完整的flash工具包需要按用户数付费,每个用户需要数百美元。尽管这些因素不是难以逾越的障碍,但它们确实减慢了flash在动态web应用道路上的前进脚步。2.136 dhtml革命当microsoft和netscape发布其各自浏览器的第4版时,web开发人员有了一个新的选择:动态html(dynamic html,dhtml)。与有些人想像的不同dhtml不是一个w3c标准,它更像是一种营销手段。实际上,dhtml结合了html、层叠样式表(cascading style sheets,css)、javascript和dom。这些技术的结合使得开发人员可以动态地修改web页面的内容和结构。最初dhtml的反响很好。不过,它需要的浏览器版本还没有得到广泛采用。尽管ie和netscape都支持dhtml,但是它们的实现大相径庭,这要求开发人员必须知道他们的客户使用什么浏览器。而这通常意味着需要大量代码来检查浏览器的类型和版本,这就进一步增加了开发的开销。有些人对于尝试这种方法很是迟疑,因为dhtml还没有一个官方的标准。不过,将来新标准有可能会出现。2.137 xml衍生语言20世纪90年代中期,基于sgml衍生出了w3c的可扩展标记语言(extensible markup language,xml),自此以后,xml变得极为流行。许多人把xml视为解决所有计算机开发问题的灵丹妙药,以至于xml几乎无处不在。实际上,microsoft就已经宣布,office 12将支持xml文件格式。如今,我们至少有4种xml衍生语言可以用来创建web应用(w3c的xhtml不包括在内):mozilla的xul;xamj,这是结合java的一种开源语言;macromedia的mxml; microsoft的xaml。xul:xul(读作“zool”)代表xml用户界面语言(xml user interface language),由mozilla基金会推出。流行的firefox浏览器和thunderbird邮件客户端都是用xul编写的。利用xul,开发人员能构建功能很丰富的应用,这个应用可以与因特网连接,也可以不与因特网连接。为了方便那些熟悉dhtml的开发人员使用,xul设计为可以跨平台支持诸如窗口和按钮等标准界面部件。虽然xul本身不是标准,但它是基于各种标准的,如html 4.0、css、dom、xml和ecmascript等等。xul应用可以在浏览器上运行,也可以安装在客户端主机上。当然,xul也不是没有缺点。它需要gecko引擎,而且目前ie还没有相应的插件。尽管firefox在浏览器市场中已经有了一定的份额,但少了ie的支持还是影响很大,大多数应用都无法使用xul。目前开展的很多项目都是力图在多个平台上使用xul,包括eclipse。xaml:xaml(读作“zammel”)是microsoft即将推出的操作系统(名为windows vista)的一个组件。xaml是可扩展应用标记语言(extensible application markup language)的缩写,它为使用vista创建用户界面定义了标准。与html类似,xaml使用标记来创建标准元素,如按钮和文本框等。xaml建立在microsoft的 .net平台之上,而且可以编译为 .net类。xaml的局限应当很清楚。作为microsoft的产品,它要求必须使用microsoft的操作系统。多数情况下特别是在大公司中,这可能不成问题,但是有些小公司使用的不是microsoft的操作系统,总不能削足适履吧,就像是没有哪家公司会因为买家没有开某种牌子的车来就把他拒之门外。vista交付的日期一再推迟,与此同时xaml也有了很大变化,不再只是一个播放器。据说,在未来几年内,我们可能会看到一个全新的xaml。 mxml:macromedia创建了mxml,作为与其flex技术一同使用的一种标记语言。mxml是最佳体验标记语言(maximum experience markup language)的缩写,它与html很相似,可以以声明的方式来设计界面。与xul和xaml类似,mxml提供了更丰富的界面组件,如datagrid和tabnavigator,利用这些组件可以创建功能丰富的因特网应用。不过,mxml不能独立使用,它依赖于flex和actionscript编程语言来编写业务逻辑。mxml与flash有同样的一些限制。它是专用的,而且依赖于价格昂贵的开发和部署环境。尽管将来.net可能会对mxml提供支持,但现在flex只能在j2ee应用服务器上运行,如tomcat和ibm的websphere,这就进一步限制了mxml的广泛采用。xamj:让人欣喜的是,开源社区又向有关界面设计的xml衍生语言领域增加了新的成员。xamj作为另一种跨平台的语言,为web应用开发人员又提供了一个工具。这种衍生语言基于java,而java是当前最流行的面向对象语言之一,xamj也因此获得了面向对象语言的强大功能。xamj实际上想要替代基于xaml或html的应用,力图寻找一种更为安全的方法,既不依赖于某种特定的框架,也不需要高速的因特网连接。xamj是一种编译型语言,建立在“clientlet”(小客户端)体系结构之上,尽管基于xamj的程序也可以是独立的应用,但通常都是基于web的应用。在撰写本书时,xamj还太新,我们还没有听到太多批评的声音。不过,批评是肯定会有的,让我们拭目以待。当谈到“以x开头的东西”时,别忘了w3c xforms规约。xforms设计为支持更丰富的用户界面,而且能够将数据与表示解耦合。毋庸置疑,xforms数据是xml,这样你就能使用现有的xml技术,如xpath和xml schema。标准html能做的,xforms都能做,而且xforms还有更多功能,包括动态检查域值、与web服务集成等等。不同于其他的许多w3c规约,xforms不需要新的浏览器,你可以使用现在已有的许多浏览器去实现。与大多数xml衍生语言一样,xforms是一种全新的方法,所以它要得到采纳尚需时日。2.138 基本问题有了以上了解,你怎么想?即使是要求最苛刻的客户应用,也已经把web作为首选平台。很显然,基于web的应用很容易部署,这种低门槛正是web应用最耀眼的地方。由于浏览器无处不在,而且无需下载和安装新的软件,用户利用基于浏览器的客户端就能很轻松地尝试新的应用。用户只需点击一个链接就能运行你的应用程序,而不用先下载几兆比特的安装程序才行。基于浏览器的应用也不考虑操作系统是什么,也就是说,不仅使用不同操作系统(如linux和mac os x)的人能运行你的应用程序,而且你也不必考虑针对不同的操作系统开发和维护多个安装包。既然基于web的应用是前所未有的好东西,那我们为什么还要写这本书?如果回头看看因特网的起源就可以知道,最初因特网实际上就是为了科学家们和学术机构间交换文章和研究成果,这是一种简单的请求/响应模式。那时不需要会话状态,也不需要购物车,人们只是在交换文档。但现在你有很多办法来创建动态的web应用,如果想让应用真正深入人心,赢得大量的用户,就必须在浏览器上大做文章,这说明,因特网以请求/响应模式作为基础,由此带来的同步性对你造成了妨碍。与microsoft word或intuit quicken之类的胖客户应用相比,web模型当然只能根据一般用户需要做折中考虑。不过,由于web应用很容易部署,而且浏览器的发展相当迅速,这意味着大多数用户都已经学会了适应。但是,还是有许多人认为web应用只能算“二等公民”,给人的用户体验不是太好。因为因特网是一个同步的请求/响应系统,所以浏览器中的整个页面会进行刷新。最初,这种简单的请求并没有什么问题。如果用户做了一两处修改,就必须向服务器发回整个文档,而且要重新绘制整个页面。尽管这样是可行的,但是这种完全刷新的局限,意味着应用确实还很粗糙。这并不是说开发人员只是袖手旁观,全然接受这种状况。microsoft对于交互式应用有一定了解,而且对于这种标准请求/响应模式的限制一直都不满意,因此提出了远程脚本(remote scripting)的概念。远程脚本看似神奇,其实很简单:它允许开发人员创建以异步方式与服务器交互的页面。例如,顾客可以从下拉列表中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国地质调查局西安矿产资源调查中心招聘(26人)考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025年春季中国石油高校毕业生招聘(河南有岗)模拟试卷附答案详解(完整版)
- 2025年深圳市烟草专卖局(公司)应届高校毕业生招聘22名考前自测高频考点模拟试题及一套答案详解
- 2025湖南湘潭市韶山旅游发展集团酒店管理有限公司招聘8人考前自测高频考点模拟试题及答案详解(名校卷)
- 2025湖北恩施市福牛物业有限公司招聘18人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025辽宁抚顺新抚钢有限责任公司招聘拟聘用人员模拟试卷完整答案详解
- 2025江苏南京白下人力资源开发服务有限公司招聘劳务派遣人员1人(二十六)模拟试卷及1套完整答案详解
- 2025福建南平市政和县公安局向社会招聘警务辅助人员17名模拟试卷及答案详解一套
- 2025北京十一晋元中学招聘考前自测高频考点模拟试题及答案详解(网校专用)
- 2025福建省康辉国际旅行社股份有限公司招聘5人模拟试卷及完整答案详解
- 泵站日常运营与维护方案
- T-EERT 040.1-2024 环保设备设施安全管理 总则
- TDT1075-2023光伏发电站工程项目用地控制指标
- +高++中语文《琵琶行(并序)》理解型默写+统编版高中语文必修上册
- 设备分类分级管理方法
- 防水质保协议书范本简单模板
- DB32T-成人危重症临床护理技术规范 第6部分:患者身体约束
- 足球知识竞赛题库90道附答案【完整版】
- 锅炉房司炉班班长述职报告
- 安吉远洲田园康养疗愈小镇规划设计方案
- 易能EDS800变频器说明书
评论
0/150
提交评论