第1章 JavaWeb开发技术概述_第1页
第1章 JavaWeb开发技术概述_第2页
第1章 JavaWeb开发技术概述_第3页
第1章 JavaWeb开发技术概述_第4页
第1章 JavaWeb开发技术概述_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

第1章JavaWeb开发技术概述J2EE(Java2Platform,EnterpriseEdition)平台建立在J2SE(Java2Platform,StandardEdition)的基础上,为企业级应用提供了完整、稳定、安全和快速的Java平台。J2EE平台提供的Web开发技术主要支持两类软件的开发和应用,一类是做高级信息系统框架的Web应用服务器(Webapplicationserver),另一类是在Web应用服务器上运行的Web应用(Webapplication)o本章首先分析了J2EE体系结构,然后在此基础上介绍了容器、组件、Web应用、J2EE应用等与JavaWeb开发技术密切相关的基本概念。最后,阐述了组成J2EE体系结构的各层所应用的JavaWeb开发技术、运行原理以及所提供的各种服务。1.1J2EE体系结构J2EE体系结构定义了4个不同的层,自上而下的方向分别是:客户层(clienttier)、表示逻辑层(presentationlogictier)也称为Web层(Webtier)、业务层(businesstier)和数据层(datatier)。1.概述J2EE体系结构如图1.1所示。与最终用户进行交互的前端表示组件在逻辑上被划分到了客户层,而提供数据存储与访问功能的组件被划分到了数据层。另一方面,在逻辑上驻留在前端与后端之间的中间层可能由一个表示逻辑层和一个业务层组成。表示逻辑层包括基于Internet协议和Web协议(HTTP、HTTPS、HTML和XML)提供应用功能的组件,业务层由捕获企业业务逻辑的组件组成,这两个层在逻辑上可划分为完全分离的两层,每一个分离的层都是独立的,从而使J2EE支持分布式4层(或者n层)应用。J2EE是一个灵活的结构,它不将开发人员锁定到特定数量的层上,并且不详细规定对于这些逻辑分组的物理分离。在网络计算环境上,一个普通的应用可以在一台计算机上同时运行表示逻辑层和业务层(甚至可以包括数据层),而高级的应用可以在若干台计算机上从物理上分隔每一层。2.J2EE应用随着Web和Internet的发展,越来越多的企业开始开发与部署基于Web的企业内部网和外部网,而J2EE为基于Web的企业应用提供了强有力的支持。在Web环境下,术语“企业(enterprise)”描述的是依照一组公共规则进行运作的任何组织。从广义上说,“J2EE应用(J2EEapplication)"只是特定于企业的软件程序,它基于控制组织的一般规则中的某一部分来提供某种形式的功能。例如,企业可以使用J2EE创建自动化的购货订单处理应用,而大学则可以使用J2EE来构建学生选课系统。

Applet容器应用客户端容器JavaApplet客户应用程序rHTTP/HTTPSXML/HTMLRMI-IIOPF 1HTML容器(X)HTML、XMLApplet容器应用客户端容器JavaApplet客户应用程序rHTTP/HTTPSXML/HTMLRMI-IIOPF 1HTML容器(X)HTML、XML11ServWeb容器ets、JSPs、.「STLRMI-IIOPJDBC和连接器RDBMS和ERPEJB容器:会话Bean、会体Bean、消息驱动Bean表示逻辑层JDBC和连接器JDBC和连接器1数据层IJ 图山—J2EE体系结构术语“企业应用(enterpriseapplication)”与“分布式应用(distributedapplication)”的含义是相同的,因为每一个为企业构建的应用都是以某种方式分布在网络上的。“企业应用”只是另一种用于描述分布式多层应用的方法,这种应用分散在组织机构的网络基础结构的不同层上。从组件开发的视角看,J2EE支持简化的、基于组件的开发模型。在这种模型中,企业应用是通过使用Java语言编写的重用软件组织进行组装而成的。J2EE是使用Java构建新型分布式多层应用的事实标准,是完全基于J2SE的。也就是说,J2EE实际上是在J2SE之上加入了大量的企业级API和功能,从企业应用开发中提取关键要素,进而使开发人员能够简单而有效地创建广泛的分布式应用。从开发层次上看,J2EE是基于分布式多层应用模型的。在这种模型中,应用功能在逻辑上分布在联网计算环境中各个级别或各个层上,每一层表示大多数企业应用所共有的相关概念集合。也就是说,J2EE应用由软件组件构成,而这些软件组件根据它们在整个应用结构中所起的作用进行了分组,J2EE组件在其对应的层上部署,并且在对应层的容器中运行。容器能够提供标准的服务,同时使组件能够访问对应层的API。分布式多层应用(DistributedMultitieredApplication)描述的是其各部分的软件组件分布在网络各个不同的层或计算级别上的软件应用。多层结构是J2EE的核心,在多层结构中,组成应用的各种组件在逻辑上是分离的或者是分布式的,跨越网络计算环境的各个级别或各层。多层应用在逻辑上对组件进行分组的依据是这些组件在整个应用结构中执行的功能,所以这里的“层”代表功能的逻辑层或逻辑级别。

多层应用的各个层表示功能的逻辑分离,而不是表示物理分离。例如,组成J2EE应用的组件可能在逻辑上分布在客户层、表示逻辑层、业务层和数据层上,而这些层在物理上可以分布在任何数量的计算机系统中。一般地“Web应用”可以定义为:一个由HTML/XML文档、JavaServlet、JSP(JavaServerPages)、JSTL(JavaServerPagesStandardTagLibrary)、类以及其他任何种类文件可以捆绑起来,并在来自多个厂商的多个Web容器上运行的Web资源构成的集合。可以将Web应用从一个服务器移到另外一个服务器,或者移动到同一服务器的不同位置,而不需要对组成Web应用的任何种类的文件作任何改动。容器“容器(container)”指的是提供特定程序组件服务的标准化运行时环境,通过这些组件,可以在任何供应商提供的J2EE平台上得到所期望的服务。容器的作用是为组件提供与部署、执行、生命周期管理、安全和其他组件需求相关的服务。此外,不同类型的容器明确地为它们管理的各种类型的组件提供附加服务。例如,J2EEWeb容器都提供响应客户请求、执行请求时间的处理,以及将结果返回到客户端的运行时环境支持。J2EE容器还负责管理某些基本服务,像诸如组件的生命周期、数据库连接资源的共享、数据持久性等。一般地,软件开发人员只要开发出满足J2EE应用需要的组件并能安装在容器内就可以了。程序组件的安装过程包括设置各个组件在J2EE应用服务器中的参数,以及设置J2EE应用服务器本身,这些设置决定了在底层由J2EE服务器提供的多种服务(例如,安全、交易管理、JNDI查寻和远程方法调用等)。J2EE平台对每一种主要的组件类型都定义了相应的容器类型。J2EE平台由Applet容器和应用客户端容器(applicationclientcontainer)、Web容器(Servlet和JSP容器)和EJB容器(EnterpriseJavaBeansContainer)等4种类型的程序容器组成。EJB容器——为EnterpriseJavaBean组件提供运行时环境,它对应于业务层和数据访问层,主要负责数据处理以及和数据库或其他Java程序的通信。Web容器——管理JSP和Servlet等Web组件的运行,主要负责Web应用和浏览器的通信,它对应于表示层。•应用客户端容器——负责Web应用在客户端组件的运行,它对应于用户界面层。Applet容器 负责在Web浏览器和Java插件(JavaPlug-in)上运行JavaApplet程序,它对应于用户界面层。每种容器内都使用相关的各种JavaWeb编程技术。这些技术包括应用组件技术例如,Servlet,JSP,EJB等技术构成了应用的主体)应用服务技术(例如JDBC,JNDI等服务保证组件具有稳定的运行时环境)通信技术(例如,RMI,JavaMail等技术在平台底层实现机器和应用程序之间的信息传递)等3类。本书第2章介绍了开发Web应用的集成开发环境OracleJDeveloper10g,第3章介绍了如何基于OracleJDeveloper10g开发Java应用程序,第4章介绍了Web开发的执行环境OC4J(OracleContainersForJ2EE)10g。皆-122组件为了降低软件开发成本,适应企业快速发展的需求,J2EE平台提供了基于组件的方式设计、开发、组装和部署企业应用系统。按照这种方式开发出来的J2EE组件,不依赖于某个特定厂商提供的产品或者API。不管是开发商还是最终用户,都有最大的自由去选择那些能更好地满足业务或技术需求的产品或组件。1.组件的概念组件(component)是指在应用程序中能发挥特定功能的软件单位。组件实质上就是几种特定的Java程序,只不过这些程序被规定了固定的格式和编写方法,它们的功能和使用方式在一定程度上被标准化了。例如,在Java2标准版中提供的JavaBean组件,就是按照特定格式编写的Java类文件。JavaBean可以通过getXXX()和setXXX()方法访问实例变量中的数据。2.组件的类型J2EE平台主要提供了以下3类J2EE组件:客户端组件——客户端的Applet和客户端应用程序。Web组件——Web容器内的JSP、Servlet、Web过滤器、Web事件监听器。EJB组件——EJB容器内的EJB组件。组件与容器的关系概括如下:组件是组装到J2EE应用中独立的软件功能单元,每一个J2EE组件在容器中执行,容器为组件提供标准服务和API,容器充当通向底层J2EE平台的接口。“连接器(connector)”在概念上驻留在J2EE平台的下方,连接器提供了可移植服务的API,J2EE应用使用这些API来插入到现有的企业应用中。连接器也称为资源适配器,连接器为J2EE体系结构增加了另一种灵活性。下面从组件和容器的视角审视J2EE应用的定义:J2EE应用由软件组件构成,这些软件组件根据其各自所属的层进行了分类。组成J2EE应用的各种组件在对应容器中执行,容器为组件提供底层J2EEAPI的统一视图。•容器管理组件,并且为组件提供多种系统级服务。例如,生命周期管理、事务管理、数据缓存、异常处理实例池、线程以及安全性。也就是说,J2EE应用以分布式组件集合的形式存在,而各分布式软件组件在其各自的容器中运行。•J2EE客户为应用提供用户界面。客户端向最终用户提供了一个窗口,最终用户可以通过该窗口使用J2EE应用提供的各种服务。客户层用来处理J2EE应用的客户表示和用户界面。客户层用现实世界中的桌面计算机、Internet设备或者无线设备表示。J2EE应用可以和多种客户端程序实现连接,主要包括Web客户、Applet客户和应用客户。Web客户Web客户由浏览器和Web页面集合(HTML和XML等)两部分组成。Web页面由浏览器提供,用来向最终用户提供进入企业应用的界面。由Web客户提供的各种Web页面是通过驻留在Web层的Web组件动态创建的。通常,产生Web客户内容的Web组件是Servlet和JSP。Web容器负责管理驻留在Web服务器上的Servlet和JSP组件的执行,这些组件和Web容器又运行在J2EE服务器上。浏览器的功能是负责将页面正确地显示给用户,并不承担复杂的数据检索和计算任务。这些复杂而又耗时的操作在J2EE服务器端的Web容器和EJB容器内进行,所以Web客户也被称为“瘦客户”浏览器是通过HTTP协议来与J2EE服务器的特定端口进行通信的。浏览器具有以下一些主要功能:•以特定格式显示HTML文件。•获取客户的点击并转化成HTTP请求(request)。连接Web服务器,发出HTTP请求并接收处理响应(response)。管理客户和服务器之间的对话状态(SessionState)。除上述这些基础功能之外,还包括一些附属功能。例如,设定用户的Web安全机制、存取页面和快捷连接、下载文件等。在下列场合下可以优先考虑使用Web客户:J2EE应用的最终用户驻留在企业的外部。J2EE应用的最终用户由于只需要使用Web浏览器而不容易进行管理。最终用户不一定要下载或安装任何特殊的软件。Web客户和Applet客户不应当与业务层组件产生直接的依赖关系。尽管从技术角度讲,Web客户可以通过使用Applet(应用RMI或CORBA)来直接访问位于业务层上的组件。然而,最理想的方式是让Web客户通过Web层来与业务层上的EJB组件进行交互,这样就可以使业务层独立于客户。也就是说,对业务层的改变不需要对客户端进行相应的改变,因为Web层可以代表客户处理这种改变。▼一1.3.2Applet客户由Web层组件产生的Web页面可以包含嵌入式Applet。Applet是使用Java语言编写的轻量级客户程序,一般是在Web浏览器的上下文中执行。在Web浏览器中执行的Applet客户是通过HTTP协议和Web层进行通信,与Web客户类似,这样的Applet客户同样不能直接访问业务层。Applet容器负责管理Applet客户的运行时执行,一般情况下由Web浏览器和Java插件组成.Applet的优点是可以提供在一处管理的丰富图形用户界面,主要缺点是Applet很难部署,尤其是当浏览器运行在一个嵌入不同版本的Java虚拟机上时更是如此。七一133应用客户应用客户是使用Java语言编写,在标准的JVM上运行的Java应用程序。应用客户对J2SEAPI具有完全的访问能力,可以使用Java语言的Swing和AWT库构建具有复杂功能和丰富的图形用户界面。与Web客户和Applet客户不同的是,应用客户是指独立运行的Java应用程序,它不使用Web浏览器来执行,而是在客户容器内执行,使用RMI—IIOP(RemoteMethodInvocation,RMI;InternetInter-ORBProtocol,IIOP)协议与业务层的EJB组件进行完全的交互,而不需要通过Web层作为中间媒介。同样,应用客户对由低层J2SE平台提供的J2EE服务(如JDBC服务)也具有完全的访问权限。在选择客户端技术时,可以根据程序的具体功能要求和应用场合来确定。•如果Web应用是通用的电子商务网站采用Web浏览器作为客户端是最合适的选择。•如果Web应用要求使用者随时地获取信息,程序的客户端可以采用无线设备。如果Web应用要求具有复杂快速的用户界面,就应该考虑在客户端使用Applet或独立运行的Java应用程序。有时,还应该考虑Web带宽要求、反应速度和安全性等具体情况。用户的使用环境也直接影响到对客户程序的选择。如果Web应用要求用户可以在各种操作系统上都能够使用,那么就应该尽量使用标准的浏览器和Java技术作为程序客户端。Web层负责处理瘦客户端的HTTP请求和响应。Web层包括标准化的动态页面生成程序和控制用户界面的程序,它是终端用户和系统程序的接口。通过与业务层互动,Web层将用户需要的信息以适当的格式输出。Web层与客户层的主要区别有以下两点:第一,Web层主要在Web服务器端工作,而用户界面通过Web浏览器在客户端工作,两者之间通过Web通信;第二,Web层侧重于信息格式的处理,而用户界面则主要是方便人的理解和操作。例如,JSP文件在Web服务器端编译和运行,主要从数据库获取信息并传递给客户,而JSP传出的HTML文件在Web浏览器上显示。此时,JSP文件在Web层,HTML页面是用户界面。Web组件Web组件是处理客户请求的软件实体为客户请求创建和返回一个合适的响应HTML文档或XML文档)。Web组件驻留在Web层,为J2EE应用提供服务器端的表示能力,使用标准的Web协议(HTTP/HTTPS)提供动态创建的内容°J2EE1.4规范定义了4种不同的Web组件类型:JavaServletJSP、Web过滤器,以及Web事件监听器,如图1.2所示。客户层 Web层 业务层 数据库 图12Web组件概念示意图Web组件在Web服务器上的Web容器里运行,可以在Web服务器端对客户发出的HTTP请求进行响应,也可以根据需要同其他服务器端组件进行交互。除了直接同客户交互外,Web组件还可以充当Applet客户与在业务层和数据层上运行的服务器端组件之间的中间媒介。这是因为Applet不能直接访问业务层和数据层,所以要从这两层获得需要的功能必须经由Web层来实现。1.JavaServlet相对于在浏览器上运行的Applet而言,Servlet是在服务器上运行的,用Java语言编写的程序。Servlet是用Java语言书写的一种协议,是与平台无关的服务器端组件,可在支持Servlet的Web服务器上运行。Servlet被装载到Web服务器后,在JVM上执行,所以不需要任何图形用户界面。Servlet为客户端和服务器端的信息处理提供了一种“请求一响应(request-response)”模式的运行机制,而JavaServletAPI为处理客户端和服务器端之间的请求和应答信息定义了标准接口。Servlet的基本运行方式如图1.3所示。 图1.3_Servlet的基本运行方式•如果是静态HTML页面,Web服务器将会自行处理,然后产生响应信息。•如果涉及到动态数据,Web月服务器将HTTP请求转交给Servlet容器处理,结果先传送给Web服务器,再由Web服务器传送给客户端浏览器。JavaServlet具有以下主要优点:•可移植性一一主流IT厂商的Web月服务器和应用服务器都支持Servlet,所以基于Servlet的解决方案不会把开发人员限制在某个特定厂商的产品上。同时,Servlet使用Java语言编写,故可运行在任何安装有Java运行时环境的操作系统上。•方便性一一Web层技术主要使用通过HTTP处理传递的HTML页面信息,这就要求Web月服务器能读写HTTP协议的数据头、数据体,能处理Cookie和进行会话管理。这些工作虽然通过CGI技术也可以实现,旦是Servlet提供了以Java语言为基础的编程方式,编程者可以使用面向对象的概念来应用现成的API。•高效性一一Servlet比CGI高效。CGI处理每个HTTP请求都要激活一个进程,而Web容器使用线程管理Servlet对HTTP请求的响应。当大量客户同时对一个Servlet发出请求时,Web容器只运行该Servlet的一个实例,而不是像CGI那样要运行多个实例而占用大量的内存。CGI的另外一个问题是在处理HTTP请求后就被从内存中清理掉了,不能维持中间数据。而Servlet在Web容器的辅助下维持程序实例在运行环境中的存在,直到Web容器停止时才会被清理。•通用廉价一一JavaWeb编程技术是目前Web服务器开发领域内占绝对优势的技术。世界上绝大多数商业公司的网站都采用Servlet和JSP作为Web层的主要技术,其安全性和可靠性是可以信赖的。另一方面,支持Servlet、JSP技术的Web月服务器非常多,从高端的OracleAS10g,WebSphere,WebLogic,到底端免费的Tomcat,编程人员可以有非常多的选择。提示—「 二 本书第5章介绍了Servlet的基本概念、工作原理、基本程序结构,阐述了如何基于OracleJDeveloper10g和OC4J开发Servlet。第6章介绍了ServletAPI中主要的类和接口的用法,阐述了如何基于ServletAPI开发Web应用。2.JSPJSP技术提供了一种简单而快速的方法创建显示动态生成内容的Web页面。JSP技术规范由Sun公司制定,该规范定义了如何在服务器和JSP之间进行交互,描述了页面的格式和语法。JSP使用XML标签和Scriptlets(一种使用Java语言编写的脚本代码)封装生成页面内容的逻辑。JSP将各种格式的标签(HTML或XML)直接传递给响应的页面。通过这种传送方式,JSP实现了页面逻辑与其设计和显示的分离。JSP是Java技术的一部分oJSP在执行时被编译成Servlet,并可调用JavaBean组件或EnterpriseJavaBean组件,以便在服务器端处理。因此,JSP技术在构建可升级的基于Web的应用时扮演了重要角色。JSP与Java语言一样,并不局限于任何特定的平

温馨提示

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

评论

0/150

提交评论