您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 第一章 基于JavaEE的web应用.
第一章基于JavaEE的web应用课程目标•了解Web的基本应用•了解Web的基本应用框架•理解Web程序设计模式与运行原理•了解JavaEE的相关技术组件•了解JavaEE中的Web的相关技术•了解JavaEE体系结构•了解JavaEE组件•了解JavaEE容器及其服务•了解JavaEE企业级Web应用开发过程1.1Web应用简介•历史上还没有一项技术像互联网这样,在这么短的时间内影响如此广泛:电话用户达到5000万户用了55年,广播听众达到5000万户用了38年,电视观众达到5000万户用了13年,而Internet只用了3年用户就超过了5000万,总共不到8年就达到了3亿用户。•随着Internet的迅速发展和普及,20世纪末,互联网得到了广泛的应用,从而使人们的生活产生了巨变,促使了Web应用程序的出现,并在社会的各个方面发挥着重要作用。所谓的Web应用程序也就是一般所说的网站,由服务器、客户端以及网络组成。•在互联网发展的最初阶段,Web应用仅仅是一个静态的网站,其所有的网页内容都是静态的HTML页面,HTML页面称为超文本链接标记语言(HyperTextMarkupLanguage),是一种由简单的HTML标记组成的描述文本,HTML标记可以说明文字、图形、动画、声音和表格等等,页面与页面之间的交互是通过超链接完成的,静态Web网站的内容修改只能通过修改静态的HTML网页来实现。在这种情况下,Web网站所能实现的任务仅仅是静态的信息展示,而不能与客户产生互动,当然这样的Web网站是不能满足用户不同的需要的。在现实的生活中,用户的需要总是各种各样的,这就需要Web网站或者是Web应用程序具有收集并处理响应用户需要的功能,而静态的HTML是不能满足这种需要的。总结起来,最初传统的静态Web应用存在如下几个方面的不足:•不能提供及时信息,页面上提供的都是静态不变的信息。•当需要添加或更新信息时,必须重新编写HTML文件。•由于HTML页面是静态的,所以不能根据用户的需求提供不同的信息,不能满足多样性的需求。•静态HTMl页面的Web应用程序存在这么多的缺点,这就决定了它必然不能适应中大型系统和商业需求。为了满足这种特殊的需要,就有了后来一系列的动态页面技术的出现。所谓的动态页面是指可以和用户产生交互,能根据用户的输入信息产生对应的响应,能满足这种需求的技术就可以称之为动态网页技术。动态网页技术的发展促使了Web应用程序从静态向动态的转变,不同的动态网页技术又促使了不同实现技术Web应用程序的发展。在最早的时候,动态网页技术主要使用CGI,随着发展,动态网页技术出现了ASP、PHP、Servlet、JSP等等,那么下面我们就分别来给大家介绍不同Web应用程序的发展:1.CGI•在互联网发展的早期,动态网页技术主要使用CGI(共用网关接口),CGI程序是一种特殊的应用程序,运行在服务器上的,它被用来解释处理表单中的输入信息,并在服务器中产生对应的操作处理,或者是把处理结果返回给客户端的浏览器。能够根据不同客户端请求输出相应的HTML页面,然后由Web服务器再把这个静态页面返回给浏览器作为客户端的响应,从而可以给静态的HTML网页添加上动态的功能。具体的CGI实现动态功能的操作流程如图1-1所示。2.ASP•ASP是微软公司推出的一种动态网页语言,ASP是ActiveServerPage的缩写,即活动的服务端页面。ASP在服务器端运行,它可以创建和运行动态网页,ASP可以包含HTML标记、普通文本、脚本命令以及对一些特定微软应用程序的调用,比如COM组件,也可以包含一些交互式的内容,比如在线表单等。•ASP实现动态生成页面的流程是首先将用户的HTTP请求传入到ASP的解释器中,接着这个解释器对这些ASP脚本进行分析和执行,然后从服务器中返回处理的结果,从而实现了与用户交互的功能,ASP的语法比较简单,对编程基础没有很高的要求,所以很容易上手,而且微软提供的开发环境的功能十分强大,这更是降低了ASP程序开发的难度。•但是ASP也有其自身的缺点,ASP在本质上还是一种脚本语言,除了使用大量的组件,没有其他办法提高效率,而且ASP还只能运行在Windows环境中,这样Windows自身的一些限制就制约了ASP的发挥,这些都是使用ASP无法回避的弊端,所以ASP渐渐地退出了Web应用。3.PHP•PHP(HypertextPreprocessor)全称超文本预处理语言,完全是基于开源代码的脚本式语言,与ASP采用相同的脚本技术,与ASP类似都是可以嵌套到HTML中的语言。但不同之处在于,PHP的语法比较独特,在PHP中混合了C、Java、Perl等多种语言的语法中的优秀部分,而且PHP网页的执行速度要比CGI和ASP等语言要快很多。•PHP功能非常强大,几乎支持所有数据库,包括SQLServer2000、MySQL、Oracle、Sybase等,这种内置的方法使PHP中的数据库操作变得异常简单,而且PHP程序可以在IIS和Apache中运行,提供对多种操作系统平台的支持,并且得到了广大开源社区的支持,这是PHP比ASP更加流行的主要原因。•PHP也存在一些劣势,PHP的开发运行环境的配置比较复杂,而且PHP是开源的产品,缺乏正规的商业支持。这些因素在一定程度上限制了PHP的进一步发展。4.JavaServlet•在前面讲解CGI过程中已经介绍过了Java语言可以用来编写CGI程序,但遗憾的是,使用Java编写的CGI程序执行效率更加低下。这是因为要执行一个Java编写的CGI程序,除了需要启动一个系统进程之外,还要在进程中启动一个JVM虚拟机,然后才能在JVM中执行JavaCGI程序。如果能有办法取消这些开销,即只需要启动一个操作系统进程以及一个JVM映像,基于Java的CGI就能得到很好的改善。•Servlet也正是基于这样的想法才产生的,为了解决CGI所留下来的问题,Java推出了Servlet规范,Sun公司在上世纪90年代末就发布了基于Servlet的Web服务器。为了确保加载的各个类之间不起冲突,已经建立一个称为JavaServletAPI(应用编程接口)的编码标准,现在基本所有的服务器都遵循这个编码标准,所以Servlet的执行效率较高,而且有很好的移植性。同时对于开发者来说,Sun公司还针对Servlet标准提供了对整个Java应用编程接口(API)的完全访问,而且提供了一个完备的库可以处理HTTP。和传统的CGI程序相比,Servlet有如下几个方面的优势:•只需要启动一个操作系统进程以及加载一个JVM,大大降低了系统的开销。•如果多个请求需要做同样处理的时候,这时只需要加载一个类,这也大大降低了开销。•所有动态加载的类可以实现对网络协议以及请求解码的代码共享,大大降低了工作量。•Servlet能够直接和Web服务器交互,而普通的CGI程序不能。•Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。5.JSP•在某种程度上,我们可以说JSP是对Microsoft的ActiveServerPages(ASP)做出回应。Microsoft从Sun在Servlet规约上所犯的错误汲取了教训,并创建了ASP来简化动态页面的开发。Microsoft增加了非常好的工具支持,并与其Web服务器紧密集成。JSP和ASP的设计目的都是为了将业务处理与页面外观相分离,从这个意义上讲,二者是相似的。虽然存在一些技术上的差别(Sun也从Microsoft那里学到了教训),但它们有一个最大的共同点,即Web设计人员能够专心设计页面外观,而软件开发人员可以专心开发业务逻辑。•JSP(JavaServerPage)是SUN公司于20世纪90年代末提出的基于Java语言的Server端脚本技术,是一种基于服务器端的脚本语言。自从1999年推出以来,逐步发展为开发Web应用一项重要技术。JSP可以嵌套在HTML中,而且支持多个操作系统平台,一个JSP开发的Web应用系统,不用做什么改动就可以在不同的操作系统中运行。6.flash•并不是只有Microsoft和Sun在努力寻找办法来解决动态Web页面问题。1996年夏天,FutureWave发布了一个名叫FutureSplashAnimator的产品。这个产品起源于一个基于Java的动画播放器,FutureWave很快被Macromedia兼并,Macromedia则将这个产品改名为Flash。利用Flash,设计人员可以创建令人惊叹的动态应用。公司可以在Web上发布高度交互性的应用,几乎与胖客户应用相差无几。不同于applet、servlet和CGI脚本,Flash不需要编程技巧,很容易上手。在20世纪90年代末期,掌握Flash是一个很重要的特长,因为许多老板都非常需要有这种技能的员工。不过,这种易用性也是有代价的。7.DHTML•当Microsoft和Netscape发布其各自浏览器的第4版时,Web开发人员有了一个新的选择:动态HTML(DynamicHTML,DHTML)。DHTML不是一个W3C标准,它更像是一种营销手段。实际上,DHTML结合了HTML、层叠样式表(CascadingStyleSheets,CSS)、JavaScript和DOM。这些技术的结合使得开发人员可以动态地修改Web页面的内容和结构。•最初DHTML的反响很好。不过,它需要的浏览器版本还没有得到广泛采用。尽管IE和Netscape都支持DHTML,但是它们的实现大相径庭,这要求开发人员必须知道他们的客户使用什么浏览器。而这通常意味着需要大量代码来检查浏览器的类型和版本,这就进一步增加了开发的开销。有些人对于尝试这种方法很是迟疑,因为DHTML还没有一个官方的标准。不过,将来新标准有可能会出现。8.AJAX•Ajax并不是什么新鲜玩意儿。实际上,与这个词相关的“最新”术语就是XMLHttpRequest对象(XHR),它是利用特殊的DOM对象XMLHttpRequest代替HTML中FORM的提交和响应机制。XMLHttpRequest对象实际上是一种利用XML作为HTTP协议传输媒介的封装对象,其最大的特点就是支持与服务器异步通信传输,这样就能创建更加动态的Web应用。•传统的Web应用遵循一种请求/响应模式。如果没有Ajax,对于每个请求都会重新加载整个页面(或者利用IFRAME,则是部分页面)。原来查看的页面会放到浏览器的历史栈中(不过,如果使用了IFRAME,点击“后退”按钮不一定能得到用户期望的历史页面)。与此不同,用XHR做出的请求不会记录在浏览器的历史中。如果你的用户习惯于使用“后退”按钮在Web应用中进行导航,就可能会产生问题。•使用XHR,可以对服务器做一个调用,触发某一组验证规则。这些规则可能比你用JavaScript编写的任何规则都更丰富、更复杂,而且你还能得到功能强大的调试工具和集成开发环境(IDE)。作为Ajax的核心,XHR对象设计为允许从服务器异步地获取任意的数据。1.2Web应用架构•随着越来越多的企业开始用计算机来管理公司的核心业务,基于低级语言开发的单机应用软件应用已经远远不能满足行业的需求。越来越多的数据和业务信息都需要有专门的管理软件来集中管理,越来越多的终端客户要求参与业务管理,要求越来越高的用户操作舒适性也需要更加丰富的图形界面来展现,促使了Web应用架构从单机模型发展成为了客户端/服务器模型。•1.胖客户端程序RCP•桌面应用程序是客户端/服务器模型的一种,它也称为胖客户端程序(RichClientProgram简称RCP)。桌面应用程序的客户端/服务器模型也称为胖客户端/服务器模型(RichClient/Server),如图1-3所示:2.瘦客户端程序TCP•与胖客户端程序相对的就是瘦客户端程序。瘦客户端程序(ThinClientProgram,简称TCP)一般表现为Web程序,它指的是在客户端/服务器模型中的一个基本无需
本文标题:第一章 基于JavaEE的web应用.
链接地址:https://www.777doc.com/doc-3153150 .html