第1章Web应用的发展

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1章Web应用的发展•Web应用程序也就是基于网页的应用程序,用户无需安装任何专用程序,只用浏览器来访问服务器,通过浏览网页就可以实现业务流程。相对于原来的客户端/服务器(C/S)模式,这种新的程序开发模式称为浏览器/服务器(B/S)模式。它是随着Internet技术的兴起,对传统结构的一种改进。Web应用的业务逻辑完全在应用服务器端实现,客户端只需要浏览器即可进行业务处理,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构。1.1从静态网页说起•最开始的Web只是一个一个的站点(website),还不能称作应用程序,它们由很多静态网页堆积而成,内容更新只能通过修改网页本身来实现。•静态网页是指没有后台数据库、不含程序、不可交互和不会有任何改变的网页。静态网页的内容变化只能通过重新编辑网页文件来实现。绝大部分静态网页是以htm或html结尾的html文件编写的。在程序设计中一般又把html网页称为静态网页。•HTML是HypertextMarkupLanguage的缩写,中文也就是超文本链接标示语言。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。1.2动态网页的鼻祖CGI•随着互联网的发展越来越多的应用程序也希望转移到Web上去,真正的Web应用开始出现,查询数据库、调用程序处理、发送电子邮件等等。必须要有动态网页才能满足用户的需求,最早的动态网页是CGI程序。•CGI(Commongateintergace)通用网关接口的简称。它是一段部署在服务器上的程序供同客户端的页面来调用的接口,通俗的讲CGI就像是一座桥把网页和Web服务器中的执行程序连接起来,当用户在浏览器端填好表单(form)要求输入的资料,提出HTTP请求后,Web服务器端将执行一个表单所设定的可执行的CGI应用程序,CGI程序分析表单(form)中所输入的资料,存取数据库,将查询执行的结果以HTML的格式返回给浏览器。CGI可以实现处理表格,据库查询,送电子邮件等许多操作,CGI使网页变得不是静态的,是交互式的。1.3三足鼎立•虽然CGI可以实现动态网页,但它还是基于传统的编程方式,尤其是不适合网页输出。网页的输出需要用大量的print语句来实现,开发者几乎无法从程序中看出最后输出的网页的是什么样,更无法使用网页编辑工具,程序设计人员与网页开发人员无法分工协助。于是替代CGI专为开发动态网页的语言出现了,目前最热门的有3种:ASP、JSP和PHP。它们占据了Web应用的绝大部分市场,而且各有优势成了三足鼎立之势。1.3.1系出名门----ASP和ASP.Net•ASP是微软公司开发的代替CGI脚本程序的一种应用。ASP是ActiveServerPage的缩写,意为“活动服务器网页”。ASP是在服务器端运行的,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的Web应用程序。•ASP在外表上看起来仍然是一个HTML文件,只是在需要变化的部分加入的了一些ASP特有的脚本,这些脚本又称为ASPBean。1.3.2草根中走出的巨人----PHP•PHP是:HypertextPreprocessor(超级文本预处理语言)的缩写。PHP是一种开放源代码的脚本编程语言,与ASP和JSP一样都是一种在服务器端执行的嵌入HTML文档的脚本语言,也需要在容器中运行,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。•从一开始PHP就开源项目的面孔出现,PHP成功的两大秘诀,第一条就是简单,为编程者提供最大的便利。第2条就是“Community(强大的社区)”,众多的个人参与者对PHP的发展提供了非常大的帮助,所以PHP被戏称为草根语言。以上特点使PHP也有相当多的支持者,PHP的最新版本PHP5也进入的面向对象语言的特性,在Web应用开发领域是微软ASP、SUN的JSP有一个有利的竞争者。1.3.3来自Java阵营----JSP和J2EE•JSP(JavaServerPages)是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的HTML文件中插入Java程序段(Scriptlet)和JSP标签(tag),从而形成JSP文件,文件扩展名就是.jsp。•JSP技术使用Java编程语言编写类、标签和Scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。最重要的是因为JSP由Java语言编写,可以说JSP的跨平台能力是与生俱来的。JSP也需要自己的运行环境,称为JSP服务器或者JSP容器,目前流行的JSP服务器有开源项目Apache-Tomcat、JBoss和厂商提供产品的weblogic、webshpere等等1.4模型-视图-控制器(MVC)•设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。MVC正是这样的一个设计模式,它强制性的使应用程序的输入、处理和输出分开。在Web应用中MVC模式被极广泛才采用,几乎所有的设计人员都或多或少的要遵循或者参考MVC模式。1.4.1MVC简介•MVC本来是存在于桌面应用程序中,M(model)是指数据模型,V(View)是指用户界面,C(Control)则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。后来MVC被借用到Web应用开发中去,发现更能发挥它的威力,最后被Sun公司推荐为J2EE平台的一个经典模式。模式并不局限与某种语言,MVC模式在.NET和PHP中同样有其实现方法。•模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器3者之间的关系和各自的主要功能,1.4.2MVC的组成部分•视图(View)代表用户交互界面,对于Web应用来说就是HTML界面。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。•模型(Model):就是业务流程/状态的处理以及业务规则的制定。•控制(Controller)可以理解为一个分发器,他来决定选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求,控制层并不做任何的数据处理。1.4.3MVC带来的好处•既然所有的模式是经典代码的总结,是经过反复验证的经验,那么MVC模式也一定有很多优势,下面分析MVC到底带来了哪些好处。•大部分Web应用程序是用ASP,PHP或者JSP开发出来。它们将像数据库查询语句这样的程序代码和像HTML这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常比较困难,尤其是维护他人编写的已有代码。MVC从根本上强制性的将它们分开,最大程度上实现了程序代码与网页的分离。•多个视图能共享一个模型,现在需要用越来越多的方式来访问你的应用程序。对此,其中一个解决之道是使用MVC,无论你的用户想要Flash界面或是WAP界面,用一个模型就能处理它们。由于数据和业务规则从表示层分开,所以可以最大化的重用代码。1.5Ajax的兴起•J2EE和.NET等框架使服务器端的设计和开发有了很大的发展,而用户界面的改善却一直比较滞后,总是一个网页转向另一个网页,强制用户进入提交、等待、重新显示的范例,用户的动作总是与服务器的“思考时间”同步。而Ajax的出现极大的丰富了用户体验,出现时间不长其影响却非常之大。这里不得不提到Google,Google是Ajax的推广者也是实践者,他的产品中大量使用了Ajax,同时也提供了很好的Ajax的开发包。为Ajax的兴起了很大作用。1.5.1什么是Ajax•Ajax不是一种新技术,实际上它由几种蓬勃发展的技术以新的强大方式组合而成。Ajax包含:•(1)基于XHTML和CSS标准的表示;•(2)使用DocumentObjectModel进行动态显示和交互;•(3)使用XML和XSLT进行数据交换与处理;•(4)使用XMLHttpRequest与服务器进行异步通信;•(5)使用JavaScript绑定一切;•Ajax是由JesseJamesGarrett创造的,他说它是“AsynchronousJavaScript+XML(异步JavaScript和XML)的简写”。1.5.2Ajax的工作原理•Ajax的核心是JavaScript对象XmlHttpRequest。该对象在InternetExplorer5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。如图展示了Ajax页面与后台交互的过程与传统页面刷新模式的不同。1.5.3Ajax的优势所在•Ajax引擎读取信息,并且互动地重写网页,这使网页能无缝化更新,也就是在页面已经下载完毕后改变页面内容,这不仅仅是网页内部的互动还可以从外部获取数据。在以前只能有用户来输入数据提交并刷新网页,但现在使用XMLHTTPRequest可以不重载页面的情况下读写服务器上的数据,使用户的输入达到最少。•基于XML的网络通讯也并不是新事物,与FLASH和JAVAApplet相比,Ajax并且不需要插件或下载小程序,不打破沙箱原则,对用户更安全。1.6小结•本章回顾了Web应用的发展历程,简要介绍了当前主流的几种主流的开发语言,通过比较发现JSP/J2EE与其它几种相比更有优势。而对于庞大数量的Java开发人员来说,学习JSP只需要熟悉简单的JSP特性而不必重新学习一种专门的语言。在下一章中将详细介绍如何使用JSP来开发Web应用。

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功