Web层Web层设计中的问题与Web应用程序部署客户端课件

上传人:hknru****knru 文档编号:240977759 上传时间:2024-05-22 格式:PPT 页数:80 大小:487.98KB
返回 下载 相关 举报
Web层Web层设计中的问题与Web应用程序部署客户端课件_第1页
第1页 / 共80页
Web层Web层设计中的问题与Web应用程序部署客户端课件_第2页
第2页 / 共80页
Web层Web层设计中的问题与Web应用程序部署客户端课件_第3页
第3页 / 共80页
点击查看更多>>
资源描述
Web层层Web层设计中的问题与指南层设计中的问题与指南Web应用程序部署应用程序部署客户端客户端5.显示层技术显示层技术1Web层5.显示层技术15.1 Web5.1 Web层层WebWeb层的工作就是接收来自于层的工作就是接收来自于HTTPHTTP客户端客户端的输入,将收到的输入交给内部的业务逻辑进的输入,将收到的输入交给内部的业务逻辑进行处理,然后将结果通过行处理,然后将结果通过HTTPHTTP协议送回客户端。协议送回客户端。5.显示层技术显示层技术WebWeb层层在基于在基于InterentInterent的分布式应用框架中,显示的分布式应用框架中,显示层一般由层一般由WebWeb层和客户端两部分组成。层和客户端两部分组成。25.1Web层Web层的工作就是接收来自于HTTP客户端的HJSPJSP文件:从文件:从HTTPHTTP的请求中提取参数,调用相的请求中提取参数,调用相应的业务逻辑,处理应的业务逻辑,处理HTTPHTTP会话,最后生成会话,最后生成HTTPHTTP文档。总的看来,这个模型的好处是简文档。总的看来,这个模型的好处是简单,但是它把业务逻辑和表现混在一块,对单,但是它把业务逻辑和表现混在一块,对大应用来说,这个缺点是令人容忍不了的。大应用来说,这个缺点是令人容忍不了的。n两种模型两种模型浏览器浏览器数据库数据库BeanJSP文件文件5.显示层技术显示层技术WebWeb层层3JSP文件:从HTTP的请求中提取参数,调用相应的业务逻辑,HMVCMVC模式模式(Model/View/Controller)5.显示层技术显示层技术WebWeb层层F定义:定义:MVCMVC是一个设计模式,它强制性的使应是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。用程序的输入、处理和输出分开。视图:用户看到并与之交互的界面。对老式视图:用户看到并与之交互的界面。对老式的的WebWeb应用程序来说,视图就是由应用程序来说,视图就是由HTMLHTML元素组元素组成的界面,在新式的成的界面,在新式的WebWeb应用程序中,还包括应用程序中,还包括MacromediaMacromediaFlashFlash和象和象XHTMLXHTML,XML/XSLXML/XSL,WMLWML等一些标识语言和等一些标识语言和WebWebservicesservices。4MVC模式(Model/View/Controller)5模型:表示企业数据和业务规则。在模型:表示企业数据和业务规则。在MVCMVC的的三个部件中,模型拥有最多的处理任务。被三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,即模型与数据格模型返回的数据是中立的,即模型与数据格式无关。式无关。5.显示层技术显示层技术WebWeb层层控制器:接受用户的输入,根据请求决定调控制器:接受用户的输入,根据请求决定调用模型构件去处理请求,然后确定用哪个视用模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。图来显示模型处理返回的数据。5模型:表示企业数据和业务规则。在MVC的三个部件中,模型拥有66F为什么要使用为什么要使用 MVC MVC5.显示层技术显示层技术WebWeb层层多个视图能共享一个模型。由于多个视图能共享一个模型。由于MVCMVC已经将数已经将数据和业务规则从表示层分开,无论用户想要据和业务规则从表示层分开,无论用户想要FlashFlash界面或是界面或是WAPWAP界面界面,用一个模型就能处理用一个模型就能处理它们它们,可以最大化的重用代码可以最大化的重用代码 。模型返回的数据没有进行格式化,所以同样模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。的构件能被不同界面使用。7为什么要使用MVC5.显示层技术Web层多个视图能共享一5.显示层技术显示层技术WebWeb层层由由于于运运用用MVCMVC的的应应用用程程序序的的三三个个部部件件是是相相互互对对立立,改改变变其其中中一一个个不不会会影影响响其其它它两两个个,所所以以依依据据这这种种设设计计思思想想能能构构造造良良好好的的松松偶偶合的构件。合的构件。可可以以使使用用控控制制器器来来联联接接不不同同的的模模型型和和视视图图去去完完成成用用户户的的需需求求,这这样样控控制制器器可可以以为为构构造造应用程序提供强有力的手段。应用程序提供强有力的手段。85.显示层技术Web层由于运用MVC的应用程序的三个部件是FMVCMVC的缺点的缺点 使使用用MVCMVC需需要要精精心心的的计计划划,花花费费相相当当可可观观的的时时间间去去考考虑虑如如何何将将MVCMVC运运用用到到应应用用程程序序,同同时时由由于于模模型型和和视视图图要要严严格格的的分分离离,这这样样也也给给调调试应用程序到来了一定的困难。试应用程序到来了一定的困难。所所以以使使用用MVCMVC同同时时也也意意味味着着要要管管理理比比以以前前更更多多的文件,增加了工作量。的文件,增加了工作量。5.显示层技术显示层技术WebWeb层层9MVC的缺点5.显示层技术Web层95.显示层技术显示层技术WebWeb层层 MVCMVC设设计计模模式式是是一一个个很很好好创创建建软软件件的的途途径径,但但是是如如果果要要隔隔离离模模型型、视视图图和和控控制制器器的的构构件件,则则要重新思考应用程序,尤其是应用程序的构架。要重新思考应用程序,尤其是应用程序的构架。MVCMVC并并不不适适合合小小型型甚甚至至中中等等规规模模的的应应用用程程序序,花花费费大大量量时时间间将将MVCMVC应应用用到到规规模模并并不不是是很很大大的应用程序通常会得不偿失。的应用程序通常会得不偿失。105.显示层技术Web层MVC设计模式是一个很好创建软件H交付应用的功能到交付应用的功能到WebWeb之上:应用设计通常之上:应用设计通常将业务逻辑从数据显示中分离出来。将业务逻辑从数据显示中分离出来。WebWeb层层为后端应用模型中的业务逻辑(可以被其它为后端应用模型中的业务逻辑(可以被其它类型的客户端共享访问),接收类型的客户端共享访问),接收HTTPHTTP输入并输入并产生产生HTTPHTTP输出。输出。nWebWeb层的功能层的功能5.显示层技术显示层技术WebWeb层层11交付应用的功能到Web之上:应用设计通常将业务逻辑从数据显示H动态内容创建:动态内容创建:WebWeb层组件为产生动态层组件为产生动态WebWeb内内容来设计的。容来设计的。ServletsServlets和和JSPJSP页面可以基于用页面可以基于用户的输入与上下文将来自于多种源的数据格户的输入与上下文将来自于多种源的数据格式转化为任意的数据格式。式转化为任意的数据格式。H屏幕流程:由于屏幕流程往往对应到特定的客屏幕流程:由于屏幕流程往往对应到特定的客户端的动作,因此决定下一屏幕(也即哪个页户端的动作,因此决定下一屏幕(也即哪个页面)应该显示什么的逻辑一般驻留在面)应该显示什么的逻辑一般驻留在WebWeb层。层。5.显示层技术显示层技术WebWeb层层12动态内容创建:Web层组件为产生动态Web内容来设计的。SeH数据表示和输入收集:数据表示和输入收集:WebWeb层和层和WebWeb客户端进客户端进行通讯以使得格式化代码的行通讯以使得格式化代码的WebWeb文档自然就属文档自然就属于于WebWeb层。其次,用户的输入以层。其次,用户的输入以HTTPHTTP的的PUTPUT和和GETGET动作到达动作到达WebWeb层,层,WebWeb层收到这些动作即将层收到这些动作即将其翻译为某种形式(经常是某种形式的命令其翻译为某种形式(经常是某种形式的命令对象)以便其余的应用可以理解。对象)以便其余的应用可以理解。5.显示层技术显示层技术WebWeb层层13数据表示和输入收集:Web层和Web客户端进行通讯以使得格式H状态管理:状态管理:WebWeb层有一个简单的、灵活的机制层有一个简单的、灵活的机制用来在一个用户的会话期间积聚相应的事务型用来在一个用户的会话期间积聚相应的事务型数据和上下文数据。数据和上下文数据。H协议转换:协议转换:EJBEJB服务器、数据库、服务器、数据库、EISEIS层资源管层资源管理器和其它的网络资源都有它们自己的协议。理器和其它的网络资源都有它们自己的协议。WebWeb层作为一个软件层,把来自于其它协议的请层作为一个软件层,把来自于其它协议的请求和应答翻译为求和应答翻译为HTTPHTTP形式,或者,把形式,或者,把HTTPHTTP请求请求和应答翻译成其它协议的形式。和应答翻译成其它协议的形式。5.显示层技术显示层技术WebWeb层层14状态管理:Web层有一个简单的、灵活的机制用来在一个用户的会H对多种潜在的客户端类型的支持:对多种潜在的客户端类型的支持:WebWeb使用使用HTTPHTTP协议来传送数据给客户端,数据通过协议来传送数据给客户端,数据通过MIMEMIME类型(一种扩展的内容分类机制)来描类型(一种扩展的内容分类机制)来描述。任何述。任何HTTPHTTP形式的客户端都能够加入一个形式的客户端都能够加入一个WebWeb应用,且此客户端能够使用可以下载内容应用,且此客户端能够使用可以下载内容的任意类型,即使内容的类型还未存在。的任意类型,即使内容的类型还未存在。5.显示层技术显示层技术WebWeb层层15对多种潜在的客户端类型的支持:Web使用HTTP协议来传送数J2EEJ2EE的的WebWeb层技术提供了服务器的扩展机制,层技术提供了服务器的扩展机制,该机制提供了一种基于服务器端脚本设计所带该机制提供了一种基于服务器端脚本设计所带来的好处,并且采用的是一种标准的、安全的、来的好处,并且采用的是一种标准的、安全的、厂商中立的方法。厂商中立的方法。WebWeb应用及支持它的应用及支持它的WebWeb层技层技术包括术包括Web Web 档案(档案(archivearchive)、)、WebWeb层组件模型、层组件模型、servlets,JSP servlets,JSP 及及J2EEJ2EE的的Web Web 容器。容器。nWebWeb层层技术技术5.显示层技术显示层技术WebWeb层层16J2EE的Web层技术提供了服务器的扩展机制,该机制提供了一HWebWeb档案:对一个档案:对一个WebWeb应用的打包和部署之单应用的打包和部署之单元称之为一个元称之为一个WebWeb档案(档案(WebarchiveWebarchive,以,以“.war”“.war”作为文件名的结尾),此文件包含作为文件名的结尾),此文件包含当前当前WebWeb应用的所有类文件与资源,应用的所有类文件与资源,WebWeb档案档案也包含一个配置该应用的部署描述器文件。也包含一个配置该应用的部署描述器文件。5.显示层技术显示层技术WebWeb层层17Web档案:对一个Web应用的打包和部署之单元称之为一个WeHWebWeb容器:一个容器是位于服务器里面的类之容器:一个容器是位于服务器里面的类之集合,它们相互合作以管理组件实例的生命集合,它们相互合作以管理组件实例的生命周期并对那些实例提供数据和服务。周期并对那些实例提供数据和服务。J2EEJ2EE规范定义了一个在规范定义了一个在WebWeb容器与每一容器与每一WebWeb组件之间的约定契约,用以定义组件的生组件之间的约定契约,用以定义组件的生命周期、组件必须实现的行为、以及服务器命周期、组件必须实现的行为、以及服务器必须提供给该组件的服务。必须提供给该组件的服务。5.显示层技术显示层技术WebWeb层层18Web容器:一个容器是位于服务器里面的类之集合,它们相互合作FWebWeb容器的作用:容器的作用:分发服务请求:容器分发服务请求给它所包分发服务请求:容器分发服务请求给它所包含的组件,将上下文数据(如会话数据与当含的组件,将上下文数据(如会话数据与当前请求的信息)提供给组件,并且协调该组前请求的信息)提供给组件,并且协调该组件响应内容的产生。件响应内容的产生。HTTPHTTP请求的应答:对于请求的应答:对于URLURL的的HTTPHTTP请求翻译成请求翻译成对组件实例的调用,并将基于组件所产生的对组件实例的调用,并将基于组件所产生的内容生成相应的内容生成相应的HTTPHTTP应答。应答。5.显示层技术显示层技术WebWeb层层19Web容器的作用:分发服务请求:容器分发服务请求给它所包含的组件生命周期的管理:组件生命周期的管理:WebWeb容器通过回叫容器通过回叫(callbackcallback)的方式来通知组件的状态变化)的方式来通知组件的状态变化如实例初始化和消亡,实现对其组件的生命如实例初始化和消亡,实现对其组件的生命周期管理。周期管理。5.显示层技术显示层技术WebWeb层层20组件生命周期的管理:Web容器通过回叫(callback)的ServletServlet是一种是一种JavaJava平台服务器端扩展组件,平台服务器端扩展组件,它运行在一个它运行在一个WebWeb容器的里面。容器的里面。在一个在一个WebWeb应用应用中,每一中,每一ServletServlet的类都被映射成的类都被映射成WebWeb服务器中服务器中的一个或多个的一个或多个URLURL地址。当服务器接收到对某个地址。当服务器接收到对某个servletservlet的的URLURL的一个的一个HTTPHTTP请求(请求(GET,POSTGET,POST等)等)的时候,服务器调用相应的的时候,服务器调用相应的servletservlet的服务方法的服务方法(service()service()),该方法产生此应答的动态内容。),该方法产生此应答的动态内容。nServletServlet5.显示层技术显示层技术WebWeb层层21Servlet是一种Java平台服务器端扩展组件,它运行在一HServletsServlets特点特点FServletsServlets采用采用JavaJava来书写,因此能够运行在来书写,因此能够运行在一个内嵌在一个内嵌在WebServerWebServer里面的里面的JVMJVM实例之上。实例之上。FServletsServlets通常比通常比CGICGI程序或脚本要快,因为程序或脚本要快,因为它们运行的形式是编译过的字节码,取代的它们运行的形式是编译过的字节码,取代的是一个笨重的进程或一个解释脚本。是一个笨重的进程或一个解释脚本。5.显示层技术显示层技术WebWeb层层22Servlets特点Servlets采用Java来书写,因此FServletsServlets比扩展库要安全,因为比扩展库要安全,因为JVMJVM实例通常实例通常可以恢复一个非正常退出的可以恢复一个非正常退出的servletservlet。F与服务器端脚本技术相比,与服务器端脚本技术相比,servletsservlets的移植性的移植性更好,并且它所提供的是一个更为丰富的标准更好,并且它所提供的是一个更为丰富的标准服务的集合。服务的集合。5.显示层技术显示层技术WebWeb层层23Servlets比扩展库要安全,因为JVM实例通常可以恢复一F由于由于JavaJava平台所固有的运行时的可移植性,平台所固有的运行时的可移植性,编译过的编译过的servletservlet类具备二进制形式的跨硬件类具备二进制形式的跨硬件平台的移植性;平台的移植性;servletservlet与其容器之间的契与其容器之间的契约由约由JavaServletJavaServlet规范予以定义并且由规范予以定义并且由J2EEJ2EE兼容测试包检验过(在一个兼容测试包检验过(在一个J2EEJ2EE品牌的产品品牌的产品里),因此里),因此servletsservlets也可以跨也可以跨WebWeb服务器兼容。服务器兼容。5.显示层技术显示层技术WebWeb层层24由于Java平台所固有的运行时的可移植性,编译过的servlFServletServlet开发人员可以创建能在所有开发人员可以创建能在所有J2EEJ2EE品牌服品牌服务器上正确运行的产品,务器上正确运行的产品,J2EEJ2EE服务器用户可以服务器用户可以更换技术厂商而只做很小的甚至根本就不需要更换技术厂商而只做很小的甚至根本就不需要更改它们的应用代码。更改它们的应用代码。F打包和部署打包和部署servletsservlets(及其它的(及其它的WebWeb层组件和资层组件和资源)的规范化和标准化,确保了一个源)的规范化和标准化,确保了一个WebWeb应用不应用不用作任何代码修改或重建,就可以作为一个单用作任何代码修改或重建,就可以作为一个单独的单元部署到任何独的单元部署到任何J2EEJ2EE品牌的服务器里面。品牌的服务器里面。5.显示层技术显示层技术WebWeb层层25Servlet开发人员可以创建能在所有J2EE品牌服务器上正HServletServlet存在的问题存在的问题FServlets Servlets 写起来比较冗长:写起来比较冗长:很多产生很多产生HTMLHTML的的servletsservlets比起比起WebWeb页面要长一些,它带有以页面要长一些,它带有以System.out.printlnSystem.out.println()()环绕的每一行、在每一个双引号之前都有反环绕的每一行、在每一个双引号之前都有反斜线符号、并且可能一块逻辑或这里和那里的斜线符号、并且可能一块逻辑或这里和那里的重述。这样的重述。这样的servletsservlets写起来比较烦闷,而且写起来比较烦闷,而且读和维护都是比较困难的。读和维护都是比较困难的。5.显示层技术显示层技术WebWeb层层26Servlet存在的问题Servlets写起来比较冗长:很FServlets Servlets 是程序:是程序:对于所有的哪怕是最简单对于所有的哪怕是最简单的情况,的情况,servletsservlets都需要编程人员来开发和都需要编程人员来开发和维护。程序员不必熟悉图形设计,图形设计维护。程序员不必熟悉图形设计,图形设计人员经常不是程序员。联合编程逻辑和先进人员经常不是程序员。联合编程逻辑和先进的可视化设计的的可视化设计的servletsservlets对于程序员和图形对于程序员和图形设计人员来讲,更改起来都是比较困难的。设计人员来讲,更改起来都是比较困难的。5.显示层技术显示层技术WebWeb层层27Servlets是程序:对于所有的哪怕是最简单的情况,seFServlet Servlet 代码不易重用:基于代码不易重用:基于HTMLHTML的的WebWeb应用应用通常包括大量的重复,很多使用的场合多次通常包括大量的重复,很多使用的场合多次放在一个放在一个WebWeb应用中,应用中,HTMLHTML页面经常包含重复页面经常包含重复的样式元素来提供一致的外观和感觉。但是的样式元素来提供一致的外观和感觉。但是servletservlet的的APIAPI提供很少对于重用业务或显示提供很少对于重用业务或显示逻辑的直接支持,结果通常是剪切与粘贴式逻辑的直接支持,结果通常是剪切与粘贴式的编码风格牺牲了一致性与可维护性。的编码风格牺牲了一致性与可维护性。5.显示层技术显示层技术WebWeb层层28Servlet代码不易重用:基于HTML的Web应用通常包FServlets Servlets 混合功能代码和显示代码在一起:混合功能代码和显示代码在一起:这种做法限制看起来很小,实际上它往往是这种做法限制看起来很小,实际上它往往是所有其它问题的根源。基本的问题是业务逻所有其它问题的根源。基本的问题是业务逻辑和数据表示基本上是不同的层面,将这两辑和数据表示基本上是不同的层面,将这两者混合在一种单一的技术(既者混合在一种单一的技术(既servletservlet)导致)导致的是混淆设计、实现和维护。的是混淆设计、实现和维护。5.显示层技术显示层技术WebWeb层层29Servlets混合功能代码和显示代码在一起:这种做法限制HServletServlet的建议的建议F使用使用servlets servlets 实现服务:除了产生二进制内实现服务:除了产生二进制内容以外,容以外,servletsservlets一般提供无可视化的功能。一般提供无可视化的功能。一个一个servletservlet可以执行它所提供的服务可以执行它所提供的服务模板模板化、安全、个性化、化、安全、个性化、MVCMVC控制控制然后选择一个然后选择一个显示组件并转交请求给该组件去显示。显示组件并转交请求给该组件去显示。5.显示层技术显示层技术WebWeb层层F使用使用servletsservlets作为控制器:一个作为控制器:一个WebWeb层控制器,层控制器,用来决定如何处理一个请求并选择下一个要显用来决定如何处理一个请求并选择下一个要显示的视图。示的视图。30Servlet的建议使用servlets实现服务:除了产生nJSPJSP一个一个JSPJSP页面是一个模板文档,其中包含有页面是一个模板文档,其中包含有特殊的标记用来执行内嵌的逻辑。特殊的标记用来执行内嵌的逻辑。JSPJSP页面可以被页面可以被用来指定任何类型的动态内容,但是它们主要用用来指定任何类型的动态内容,但是它们主要用来创建结构化的内容(如来创建结构化的内容(如HTML,XML,XHTML,HTML,XML,XHTML,PDFPDF)。)。5.显示层技术显示层技术WebWeb层层31JSP一个JSP页面是一个模板文档,其中包含有特殊的标记用来HJSPJSP特点特点FJSPJSP页面比页面比servletsservlets更容易书写:更容易书写:JSPJSP页面看页面看起来非常象起来非常象HTMLHTML,带有少量的附加标记,没,带有少量的附加标记,没有重复的有重复的println()println()语句或者也不需要反斜线语句或者也不需要反斜线回退字符回退字符.5.显示层技术显示层技术WebWeb层层32JSP特点JSP页面比servlets更容易书写:JSP页面FJSPJSP页面不需要编程技能:页面不需要编程技能:JSPJSP页面看起来很页面看起来很象它生成的文档类型,文档格式的专家可以象它生成的文档类型,文档格式的专家可以不是一个程序员即可以直接编辑之。任何实不是一个程序员即可以直接编辑之。任何实际的编程或多或少地从显示代码中分离出来,际的编程或多或少地从显示代码中分离出来,因此程序员和文档格式专家可以相对独立地因此程序员和文档格式专家可以相对独立地进行工作进行工作.5.显示层技术显示层技术WebWeb层层33JSP页面不需要编程技能:JSP页面看起来很象它生成的文档类FJSP JSP 页面支持代码的重用:页面支持代码的重用:JSPJSP页面有显式代页面有显式代码重用机制。在一码重用机制。在一JSPJSP页面里面有一些特殊的页面里面有一些特殊的标记来使用标记来使用JavaBeansJavaBeans组件,编程人员可为其组件,编程人员可为其特殊的用途来定义可定制标记。特殊的用途来定义可定制标记。JSPJSP标记语言标记语言中的包括指示提供两种文档内容的重用:编中的包括指示提供两种文档内容的重用:编译时和运行时。这些机制可以通过减少重复译时和运行时。这些机制可以通过减少重复代码进而提高代码的质量代码进而提高代码的质量.5.显示层技术显示层技术WebWeb层层34JSP页面支持代码的重用:JSP页面有显式代码重用机制。在FJSP JSP 页面将功能从显示中分离开来:页面将功能从显示中分离开来:JSPJSP页面页面格式是一针对某一文档的模板,其中带有业格式是一针对某一文档的模板,其中带有业务逻辑,该逻辑要么嵌在务逻辑,该逻辑要么嵌在JSPJSP页面中的特殊标页面中的特殊标记里(作为脚本元素),要么采用记里(作为脚本元素),要么采用beansbeans或可或可定制标记。分离功能(业务逻辑)与形式定制标记。分离功能(业务逻辑)与形式(显示)允许程序员和文档作者集中于他们(显示)允许程序员和文档作者集中于他们的核心技能之上。这种对开发角色的划分是的核心技能之上。这种对开发角色的划分是J2EEJ2EE平台的主要优势之一。平台的主要优势之一。5.显示技术显示技术WebWeb层层35JSP页面将功能从显示中分离开来:JSP页面格式是一针对某HJSPJSP工作流程工作流程一个一个JSPJSP页面对其作者来说象一个文档,然页面对其作者来说象一个文档,然而而WebWeb容器实际上把容器实际上把JSPJSP页面作为页面作为servletsservlets来来实现。在一个实现。在一个JSPJSP页面可以运行在一页面可以运行在一JVMJVM实例实例之上时,它必须被转换成(通过一个转换器)之上时,它必须被转换成(通过一个转换器)一个一个servletservlet,该,该servletservlet然后被编译成一个然后被编译成一个可以装载的类。一个可以装载的类。一个JSPJSP通常直接部署到一个通常直接部署到一个WebWeb容器之中,由容器来处理相应的翻译和编容器之中,由容器来处理相应的翻译和编译。译。5.显示层技术显示层技术WebWeb层层36JSP工作流程5.显示层技术Web层363737HJSPJSP的建议的建议F使用使用JSPJSP页面作为结构文本内容的模板:页面作为结构文本内容的模板:JSPJSP页页面大多数是用来生成文本的内容通常有一致结面大多数是用来生成文本的内容通常有一致结构的文本。构的文本。JSPJSP页面也被用来产生非结构化的页面也被用来产生非结构化的文本文件。文本文件。JSP JSP页面通常并不适合于以下的几页面通常并不适合于以下的几种情形:创建二进制内容、激活应用域逻辑、种情形:创建二进制内容、激活应用域逻辑、创建带有高度可变结构的内容、或控制请求路创建带有高度可变结构的内容、或控制请求路由等等。由等等。5.显示层技术显示层技术WebWeb层层38JSP的建议使用JSP页面作为结构文本内容的模板:JSP页面F避免对逻辑标记的大量使用:标准标记库通常避免对逻辑标记的大量使用:标准标记库通常提供一些逻辑标记用来循环、执行迭代、评提供一些逻辑标记用来循环、执行迭代、评估表达式、作出决定等。应该意识到使用标估表达式、作出决定等。应该意识到使用标准标记库可以执行准标记库可以执行JSPJSP页面中很大一部分逻辑。页面中很大一部分逻辑。将逻辑放在程序以外的可定制标记之中提供将逻辑放在程序以外的可定制标记之中提供的优势较少,并且违背了逻辑和显示的分离的优势较少,并且违背了逻辑和显示的分离原则。原则。5.显示层技术显示层技术WebWeb层层39避免对逻辑标记的大量使用:标准标记库通常提供一些逻辑标记用来F正确使用正确使用JSP includeJSP include指示与动作:指示与动作:动作允许将或静态的或动态的动作允许将或静态的或动态的内容包含进此内容包含进此JSPJSP页面,指示通常用来模块化页面,指示通常用来模块化WebWeb页面,重用内容,并保持页面,重用内容,并保持WebWeb页面的长度页面的长度可以被管理。如果滥用之,则使代码膨胀。可以被管理。如果滥用之,则使代码膨胀。5.显示层技术显示层技术WebWeb层层40正确使用JSPinclude指示与动作:jsp:incHWebWeb层状态层状态一个一个servletservlet、servletservlet过滤器或过滤器或JSPJSP页面通页面通常创建相应的带有包含在该服务请求中数据的应常创建相应的带有包含在该服务请求中数据的应答,不过经常需要来自于其它源的数据来处理它答,不过经常需要来自于其它源的数据来处理它的工作。用来创建一个应答数据的一个的工作。用来创建一个应答数据的一个WebWeb层组件层组件称为状态(称为状态(statestate)。WebWeb层状态的每一项都有一层状态的每一项都有一个范围(个范围(scopescope),用来决定此项目的访问型及其),用来决定此项目的访问型及其生命周期。生命周期。5.显示层技术显示层技术WebWeb层层41Web层状态一个servlet、servlet过滤器或JSPF应用范围作用域应用范围作用域(Applicationscope)应用范围状态存贮在应用范围状态存贮在W Web层的层的ServletContext对象中,应用范围中的对象在此应用内所有的对象中,应用范围中的对象在此应用内所有的servletsservlets之间共享,线程安全由之间共享,线程安全由servlet开发人员开发人员负责。应用范围中的状态在应用的生存期间一直负责。应用范围中的状态在应用的生存期间一直存在,除非它被显式地删除。存在,除非它被显式地删除。为一个为一个WebWeb应用的应用的“全局内存全局内存”。5.显示层技术显示层技术WebWeb层层42应用范围作用域(Applicationscope)应用范servletAPI提供将数据与一个用户会话关联提供将数据与一个用户会话关联起来的机制,在后续的请求过程中访问或修改此起来的机制,在后续的请求过程中访问或修改此数据。对一个数据。对一个HttpServlet而言的会话范围状态存而言的会话范围状态存贮在贮在WebWeb层的层的HttpSession对象(由该服务方法的对象(由该服务方法的HttpServletRequest参数来提供)之中。参数来提供)之中。是对于特定于某一用户会话的数据。是对于特定于某一用户会话的数据。F会话范围会话范围(Sessionscope)5.显示层技术显示层技术WebWeb层层43servletAPI提供将数据与一个用户会话关联起来的机制一个一个WebWeb组件可以读或修改在请求范围内的组件可以读或修改在请求范围内的数据然后转交此请求给另一组件。请求被转交给数据然后转交此请求给另一组件。请求被转交给的组件然后就可以访问到此状态。请求范围内的的组件然后就可以访问到此状态。请求范围内的状态存贮在一个状态存贮在一个ServletRequestServletRequest对象里面,因此对象里面,因此它可以被接收该请求的任何组件访问到。它可以被接收该请求的任何组件访问到。特定于一个单独的服务器请求的数据,当特定于一个单独的服务器请求的数据,当服务方法返回的时候被丢弃。服务方法返回的时候被丢弃。F请求范围(请求范围(Request scopeRequest scope)5.显示层技术显示层技术WebWeb层层44一个Web组件可以读或修改在请求范围内的数据然后转交此请求给仅仅适用于仅仅适用于JSPJSP页面,以指示该数据仅在当页面,以指示该数据仅在当前页面的上下文中有效。页面范围状态存贮在一前页面的上下文中有效。页面范围状态存贮在一个个JSPJSP页面的页面的PageContextPageContext对象中。当一个对象中。当一个JSPJSP转转交给或包含另一个的时候,每一个页面定义它自交给或包含另一个的时候,每一个页面定义它自己的范围。页面范围的状态在程序从该页面中退己的范围。页面范围的状态在程序从该页面中退出的时候被丢弃掉。出的时候被丢弃掉。F页面范围(页面范围(Page scopePage scope)5.显示层技术显示层技术WebWeb层层45仅仅适用于JSP页面,以指示该数据仅在当前页面的上下文中有效FWebWeb层会话状态的优势层会话状态的优势易于实现:因为应用服务器处理了易于实现:因为应用服务器处理了HttpSessionHttpSession的实现,开发人员从对管理会话状态中所需要的实现,开发人员从对管理会话状态中所需要的设计、实现、测试代码的细节中解脱出来。的设计、实现、测试代码的细节中解脱出来。优化:一个应用服务器的优化:一个应用服务器的HttpSessionHttpSession的实现的实现是根据它本身作了优化和测试的,因此也许比是根据它本身作了优化和测试的,因此也许比一个客户化的解决方案更为有效、可靠。一个客户化的解决方案更为有效、可靠。5.显示层技术显示层技术WebWeb层层46Web层会话状态的优势易于实现:因为应用服务器处理了Http潜在的更丰富的功能集:一个应用服务器对于潜在的更丰富的功能集:一个应用服务器对于会话状态管理的实现可能包括诸如故障恢复、会话状态管理的实现可能包括诸如故障恢复、集群支持等功能,这已超出了集群支持等功能,这已超出了J2EEJ2EE平台规范的平台规范的基本需求。系统架构师可以区分服务器平台所基本需求。系统架构师可以区分服务器平台所提供的功能,并选择出最能适合当前应用需求提供的功能,并选择出最能适合当前应用需求的平台,与此同时维护的平台,与此同时维护J2EEJ2EE技术的兼容性和可技术的兼容性和可移植性。移植性。5.显示层技术显示层技术WebWeb层层47潜在的更丰富的功能集:一个应用服务器对于会话状态管理的实现可可移植性:可移植性:HttpSessionHttpSession接口是标准化的,因接口是标准化的,因此在所有的此在所有的J2EEJ2EE品牌的应用服务器中都必须通品牌的应用服务器中都必须通过过J2EEJ2EE兼容性测试包(兼容性测试包(CTSCTS)。)。可伸缩性:可伸缩性:HttpSessionHttpSession可以有效地管理会话可以有效地管理会话状态的存贮,将它放在缓存和或服务器集群状态的存贮,将它放在缓存和或服务器集群之中。之中。5.显示层技术显示层技术WebWeb层层48可移植性:HttpSession接口是标准化的,因此在所有的可进化性(可进化性(EvolvabilityEvolvability):应用服务器厂商):应用服务器厂商会坚持不懈地改善它们的产品及其功能,甚至会坚持不懈地改善它们的产品及其功能,甚至在服务器增加某些提高性能和可靠性功能的时在服务器增加某些提高性能和可靠性功能的时候,它将维护已有的接口以保证兼容性。一个候,它将维护已有的接口以保证兼容性。一个Http SessionHttp Session实现今天能正常工作,明天也将实现今天能正常工作,明天也将工作得更好,因为服务器版本的提升很少或根工作得更好,因为服务器版本的提升很少或根本就不做对源码的修改。本就不做对源码的修改。5.显示层技术显示层技术WebWeb层层49可进化性(Evolvability):应用服务器厂商会坚持不5.2 Web5.2 Web层设计问题及其指南层设计问题及其指南n Web Web层技术选择层技术选择5.显示层技术显示层技术 Web Web层设计问题及其指南层设计问题及其指南Servlets Servlets 和和JSPJSP页面都是页面都是WebWeb层组件,但是层组件,但是在设计中扮演的是不同的角色。在设计中扮演的是不同的角色。XMLXML可以被用来可以被用来作为针对数据互操作性的作为针对数据互操作性的“中心中心”格式,且可以格式,且可以在客户端或服务器端以在客户端或服务器端以CSSCSS或或XSLXSL的风格进行设计。的风格进行设计。505.2Web层设计问题及其指南Web层技术选择5.显示层H何时使用何时使用JSPJSP页面:通常,页面:通常,JSPJSP页面大多用来作页面大多用来作为显示组件,在一个为显示组件,在一个MVCMVC应用中扮演应用中扮演ViewView角色,角色,或者用来创建结构化的、非可视化的内容,如或者用来创建结构化的、非可视化的内容,如XMLXML消息。消息。H何时使用何时使用 servlets servlets:ServletsServlets主要用来作为主要用来作为MVCMVC控制器组件,作为框架支持组件(诸如模控制器组件,作为框架支持组件(诸如模板处理器、安全适配器、日志器等等),或者板处理器、安全适配器、日志器等等),或者作为对二进制内容的显示组件。作为对二进制内容的显示组件。5.显示层技术显示层技术 Web Web层设计问题及其指南层设计问题及其指南51何时使用JSP页面:通常,JSP页面大多用来作为显示组件,在H在交互式在交互式WebWeb应用里面的应用里面的XMLXML:XMLXML可以被使用可以被使用于交互式的应用中。一个于交互式的应用中。一个WebWeb层控制器可以翻层控制器可以翻译译HTTPHTTP请求为对请求为对Web ServiceWeb Service方法的调用,并方法的调用,并能使用能使用CSSCSS、XSLXSL或可定制代码来转换调用的结或可定制代码来转换调用的结果为正在请求的客户端的显示格式。这种方法果为正在请求的客户端的显示格式。这种方法只有在没有更快、更可靠、或更轻量级的方式只有在没有更快、更可靠、或更轻量级的方式去访问应用模型的时候才被建议使用,如直接去访问应用模型的时候才被建议使用,如直接访问底层的企业级访问底层的企业级JavaJava组件。组件。5.显示层技术显示层技术 Web Web层设计问题及其指南层设计问题及其指南52在交互式Web应用里面的XML:XML可以被使用于交互式的应H Web Web层状态维护层状态维护 状态维护决定对应用性能、可用性、伸缩状态维护决定对应用性能、可用性、伸缩性等有着极大的影响。此类决定包括选择相应性等有着极大的影响。此类决定包括选择相应的层来管理状态,对状态的每一项选择相应的的层来管理状态,对状态的每一项选择相应的作用范围,并且有效地跟踪一分布式环境下的作用范围,并且有效地跟踪一分布式环境下的对话状态。对话状态。5.显示层技术显示层技术 Web Web层设计问题及其指南层设计问题及其指南53Web层状态维护5.显示层技术Web层设计问题及其指南nWebWeb层设计指南层设计指南可维护性可维护性客户端独立性及代码重用客户端独立性及代码重用隔离开发人员的技能集隔离开发人员的技能集H将业务逻辑从显示逻辑中分离出来:将业务逻辑从显示逻辑中分离出来:5.显示层技术显示层技术 Web Web层设计问题及其指南层设计问题及其指南54Web层设计指南可维护性将业务逻辑从显示逻辑中分离出来:5.在一个应用设计中创建业务和显示层是一在一个应用设计中创建业务和显示层是一个很好的习惯。业务层只提供应用功能而不会有个很好的习惯。业务层只提供应用功能而不会有对显示的引用,显示层为用户(或另一系统)显对显示的引用,显示层为用户(或另一系统)显示数据与输入提示,委托应用功能给业务层。业示数据与输入提示,委托应用功能给业务层。业务规则能够在一个层中被修改,而对显示层作很务规则能够在一个层中被修改,而对显示层作很少或根本不作修改。应用的显示或工作流程可以少或根本不作修改。应用的显示或工作流程可以改变而不会影响业务逻辑代码。改变而不会影响业务逻辑代码。5.显示层技术显示层技术 Web Web层设计问题及其指南层设计问题及其指南55在一个应用设计中创建业务和显示层是一个很好的习惯。业务层只提H将协议置于模型将协议置于模型APIAPI之外之外一个模型类应该在一个一个模型类应该在一个WebWeb容器外是可用的。容器外是可用的。对对WebWeb容器的模型依赖导致不必要的耦合,降容器的模型依赖导致不必要的耦合,降低设计清晰性并使维护和单元测试更为困难。低设计清晰性并使维护和单元测试更为困难。5.显示层技术显示层技术 Web Web层设计问题及其指南层设计问题及其指南56将协议置于模型API之外一个模型类应该在一个Web容器外是可5.3 Web5.3 Web应用程序部署应用程序部署Web应用是应用是一个一个ServletServlet、HTHTML页面、类和页面、类和其它资源的组合,应包含如下组件。其它资源的组合,应包含如下组件。nWebWeb应用组件构成应用组件构成5.显示层技术显示层技术 Web Web应用程序部署应用程序部署575.3Web应用程序部署Web应用是一个Servlet、HHServletHJSPH实用程序类实用程序类H静态文档(静态文档(HTML、图片和声音等)、图片和声音等)H客户端的客户端的Applet、Bean和类等和类等H描述性的元信息,用于把上面的所有组件描述性的元信息,用于把上面的所有组件组合到一起组合到一起5.显示层技术显示层技术 Web Web应用程序部署应用程序部署58Servlet5.显示层技术Web应用程序部署58H设置设置J2EE服务器环境变量:为运行服务器环境变量:为运行J2EE服务服务器环境通常必须设置环境变量,而且不同的器环境通常必须设置环境变量,而且不同的厂家实现和操作系统平台上会有很大变化。厂家实现和操作系统平台上会有很大变化。H配置配置J2EE服务器属性:为大部分服务器属性:为大部分J2EE服务器服务器实现配置属性,使其适合于特定的网络和操实现配置属性,使其适合于特定的网络和操作环境。作环境。nWebWeb应用部署应用部署5.显示层技术显示层技术 Web Web应用程序部署应用程序部署59设置J2EE服务器环境变量:为运行J2EE服务器环境通常必须H编译编译J2EE应用程序代码:所有应用程序代码:所有J2EEWeb组件组件代码必须用标准的代码必须用标准的Java编译器编译。编译器编译。H创建创建J2EEWeb应用程序部署描述符:根据以应用程序部署描述符:根据以前定义的前定义的Web应用程序应用程序DTD创建一个基于创建一个基于XML的发布描述符。的发布描述符。5.显示层技术显示层技术 Web Web应用程序部署应用程序部署60编译J2EE应用程序代码:所有J2EEWeb组件代码必须用H封装封装J2EEWeb应用程序代码:应用程序代码:Web发布描发布描述符、所有编译好的述符、所有编译好的J2EEServlet类、所有类、所有HTML文件、所有图形文件以及其它文件、所有图形文件以及其它Web资资源需要封装到一个带源需要封装到一个带.war扩展名的扩展名的Web应用应用程序归档文件中。程序归档文件中。5.显示层技术显示层技术 Web Web应用程序部署应用程序部署61封装J2EEWeb应用程序代码:Web发布描述符、所有编H启动启动J2EE服务器:这一步要启动服务器:这一步要启动J2EE兼容的兼容的服务器。启动服务器的机制通常与厂家有关,服务器。启动服务器的机制通常与厂家有关,但也可以简单到在命令行中激发单一的启动但也可以简单到在命令行中激发单一的启动命令。命令。H创建一个创建一个J2EE应用程序描述符:必须创建一应用程序描述符:必须创建一个个J2EE应用程序部署描述符把一个或多个应用程序部署描述符把一个或多个Web、EJB和应用程序客户模块连接到和应用程序客户模块连接到J2EE应用程序中。应用程序中。5.显示层技术显示层技术 Web Web应用程序部署应用程序部署62启动J2EE服务器:这一步要启动J2EE兼容的服务器。启动服H封装封装J2EE应用程序代码:应用程序部署描述应用程序代码:应用程序部署描述符、符、Web应用程序、应用程序、EJB应用程序和应用程序应用程序和应用程序客户需要封装到一个企业级归档(客户需要封装到一个企业级归档(EAR)文件文件中,扩展名为中,扩展名为.ear。H发布发布J2EEWeb应用程序代码:最后,集成应用程序代码:最后,集成J2EE应用程序部署到应用程序部署到J2EE服务器环境中供企服务器环境中供企业应用程序客户访问。业应用程序客户访问。5.显示层技术显示层技术 Web Web应用程序部署应用程序部署63封装J2EE应用程序代码:应用程序部署描述符、Web应用程序5.35.3客户层客户层对一个企业级应用的用户,客户端就是应对一个企业级应用的用户,客户端就是应用。客户端代表用户向服务器发出请求,并将用。客户端代表用户向服务器发出请求,并将请求的结果显示给用户。客户端经常加强数据请求的结果显示给用户。客户端经常加强数据的一致性规则,并可能实现一些业务逻辑。因的一致性规则,并可能实现一些业务逻辑。因此,挑选一种能最好地适合应用的需求且提供此,挑选一种能最好地适合应用的需求且提供给用户一个丰富接口的客户端配置是很重要的。给用户一个丰富接口的客户端配置是很重要的。5.显示层技术显示层技术WebWeb层层645.3客户层对一个企业级应用的用户,客户端就是应用。客户H运行设备:一个便携机、一个台式机,或在运行设备:一个便携机、一个台式机,或在一个一个PDA或电话上。或电话上。nJ2EE平台支持的客户端平台支持的客户端H网络环境:从一个企业的网络环境:从一个企业的Intrnet或互联网可或互联网可以连接到一个有线或无线的网络。以连接到一个有线或无线的网络。H网络环境:从一个企业的网络环境:从一个企业的Intrnet或互联网可或互联网可以连接到一个有线或无线的网络。以连接到一个有线或无线的网络。5.显示层技术显示层技术WebWeb层层65运行设备:一个便携机、一个台式机,或在一个PDA或电话上。JH显示方式:浏览器、显示方式:浏览器、GUI组件组件H实现方式:实现方式:HTML或或Java,甚至可以是,甚至可以是VisualBasic。H实现功能:实现功能:F企业信息系统(企业信息系统(EIS)客户端:)客户端:EIS客户端使客户端使用一种接口(如用一种接口(如JDBCAPI等)连接到等)连接到EIS层。层。针对针对EIS的编程模型通常遵循两层或三层客的编程模型通常遵循两层或三层客户机户机/服务器体系结构的规范。服务器体系结构的规范。5.显示层技术显示层技术WebWeb层层66显示方式:浏览器、GUI组件实现方式:HTML或Java,甚FEJB客户端:使用客户端:使用Java技术的技术的EJB客户端通客户端通过过RMI(远程方法调用)(远程方法调用)API来连接到来连接到EJB层。这种情况下,传输的协议为层。这种情况下,传输的协议为IIOP(Inter-ORBProtocol)。)。RMI机制为机制为Java客户端开发人员隐藏了客户端开发人员隐藏了IIOP的细节,但的细节,但是使用非是使用非Java技术的开发人员也可以通过技术的开发人员也可以通过IIOP连接到连接到EJB层。层。5.显示层技术显示层技术WebWeb层层67EJB客户端:使用Java技术的EJB客户端通过RMI(远FWeb客户端:客户端:Web客户端使用客户端使用HTTP作为作为传输协议连接到传输协议连接到Web层。层。Web客户端的类客户端的类型不仅包括浏览器,而且包括型不仅包括浏览器,而且包括JavaApplets、MIDIets和应用以及其它的企业和应用以及其它的企业服务。服务。5.显示层技术显示层技术WebWeb层层68Web客户端:Web客户端使用HTTP作为传输协议连接到WeH服务器端体系结构:在服务器端体系结构:在Web上最简单和最常用上最简单和最常用的体系结构是完全依靠服务器来提供用户界的体系结构是完全依靠服务器来提供用户界面内容、它的构造逻辑以及与用户的相互作面内容、它的构造逻辑以及与用户的相互作用。每一个用户动作都产生一个对服务器的用。每一个用户动作都产生一个对服务器的请求,服务器处理这个请求并计算结果,生请求,服务器处理这个请求并计算结果,生成一个新的页面再次发送到客户端。成一个新的页面再次发送到客户端。n客户端三种体系结构客户端三种体系结构5.显示层技术显示层技术WebWeb层层69服务器端体系结构:在Web上最简单和最常用的体系结构是完全依用户动作用户动作内容和控制内容和控制的产生的产生浏览器浏览器客户机客户机响应响应请求请求内容构建内容构建业务逻辑业务逻辑控制逻辑控制逻辑服务器服务器服务器端体系结构服务器端体系结构好处:所需客户端资源少,应用逻辑不用装入,启好处:所需客户端资源少,应用逻辑不用装入,启动用户交互所需的网络通信量很少。支持的动用户交互所需的网络通信量很少。支持的技术包括技术包括JavaServlet,JavaServerPages。70用户动作内容和控制的产生浏览器客户机响应请求内容构建业务逻辑H客户端脚本体系结构:该方式就是将脚本作客户端脚本体系结构:该方式就是将脚本作为为HTML页面的一部分,将动态内容从服务页面的一部分,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!