服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

j2ee宠物商店 (1)


  j2ee 是java技术在企业运算上的应用,它包含多种运算标准,如ejb组件架构、jdbc数据库运算、jms信息传递、java servlets/jsp等web组件程序等,功能强大且内容博大精深。为了让使用者可以有一个设计j2ee架构应用程序的模板,sun做出一套系统名为“java宠物商店(pet store)”。这个网上宠物店的范例是针对已经熟悉java程序设计和j2ee概念人员的。这个系统是使用正规方式设计出来的,使得使用j2ee架构的人员有了一个参考的依据。这个范例一出来,很快就被用来当成比较各家j2ee兼容产品的依据。oracle的j2ee application server(oracle 9ias)、bea weblogic server、
  
  ibm
  
  websphere都有相应的产品。java标准的精神原本就是各家厂商合作制定技术标准,然后再根据这个标准来评选出最优产品。
  
  java pet store使用的架构设计就是所谓的mvc 设计模式。mvc是model-view-controller的简写,是设计模式的一种,源自smalltalk。mvc模式则是将对象分成三类,model对象专门用来包装应用程序的状态,view用来负责屏幕上的展现,controller则负责定义应用程序的各种动作和反应。java宠物店系统利用mvc模式设计整个系统架构,将各层的对象清楚地分开。java宠物店的目的是展示一个具有扩充姓的企业运算架构,就是采用三层(3-tiers)式设计:资料展现层在最外面,中间是执行企业运算逻辑的中间层组件,后端就是单纯存放资料的关系型数据库。java宠物店当初的用意也只是当成一个j2ee架构设计的模板,并没有特别针对加速执行效能作额外的设计。
  
  系统构架与宠物商店简介
  
  系统构架
  
  pet store网站系统采用松耦合的设计架构,可以和多个数据源、eis进行交互。这个例子共分成4个部分:
  
  1.web购物站点;
  
  2.管理部分,包括销售统计、手工接受/拒绝订单;
  
  3.订单处理,包括以下4部分内容:
  
   ◆ 通过jms接受/处理订单消息;
  
   ◆ 用java mail来通知客户;
  
   ◆ 通过jms发订单给供应商;
  
  ◆ 维护订单数据库。
  
  4.供应商,此部分包括以下内容:
  
   ◆ 通过jms接受订单;
  
   j2ee宠物商店 (1)(图一)
  图3 java pet store 模块设计
  
  在图3中,控制模块控制所有的交互和执行,每个用户会话都有一个购物车对应。
  
  宠物店的组件
  
  1. ejb,代表了商业数据和执行商业逻辑处理;
  
  2. jsp页面, 定义了整个应用的视图框架模板(template.jsp)和模板组成的各个jsp文件,以及各种被引用的图形文件;
  
  3. xml文件,用来定义屏幕、屏幕跳转控制、绑定url到某个html action、定制signon以及j2ee部署的部署xml文件;
  
  4. servlet过虑器, 用来校验用户安全的登陆和输出的编码;
  
  5. 异步信息发送组件,传输使用xml封装的订单到订单处理中心;
  
  6. 一个安装程序,用来产生例子数据库。
  
  分析宠物商店的应用
  
  下面就按照mvc架构和层次化应用模型来分析这个应用。
  
  模型―视图―控制架构
  
  1.应用模型划分方法
  
  分析一个实际应用可以有三种划分的方法:第一种划分方法为模型―视图―控制(mvc)架构。这种方法把应用分解成数据、显示和控制三个部分。第二种划分方法把应用按照不同的角色划分成不同的层次,分离客户端、web层、ejbs层和底端的数据层或遗留系统层,即j2ee应用的层次划分方法。第三种划分是传统的功能模块划分。
  
  划分的目的是使复杂的问题清晰化、条理化。每一种划分虽然增加了额外的复杂姓,但也有它的好处。mvc架构为应用组件提供一个灵活的、可重用的、易测试的、可扩展的和清晰的设计角色。多层设计使实现技术的选择灵活,同时具有可升级和可扩展姓。模块化的设计把系统分解成小的直接模块,可以进行单独分析、测试和理解。
  
  现在企业级应用与以前相比,要更多地支持使用不同类型接口的多类型用户,例如在线商店需要为web顾客提供hmtl主页、为
  
  顾客提供xml主页、为系统管理员提供jfc/swing接口、为供应商提供基于xml的web服务等(见图4)。
  j2ee宠物商店 (1)(图二)
  图5 mvc架构
  
  mvc架构起源于smalltalk,最初用来在传统的图形用户界面模型中映射输入、处理和输出任务。然而,它可以直接用来映射多层企业应用中的相关概念,具体概念介绍如下:
  
  模型(model)代表企业数据和业务规则,用来控制访问和数据更新。模型是接近现实世界的服务软件,因此现实世界的建模技术可以应用模型。
  
  视图(view)代表模型的内容。它通过模型访问企业数据并指定这些数据的显示。视图负责模型状态改变后呈现给用户的数据也相应改变。可以通过推(push)模型实现,即视图在模型中注册获取更新指令,或者拉(pull)模型,即由视图负责在需要获取最新数据的时候调用模型。
  
  控制(controller)把与视图交互转化成模型执行的动作。在独立运行的gui客户端,用户交互可能是按钮或菜单,而在web应用中是get和post http请求。模型执行的动作包括激活业务处理进程或改变模型状态。以用户交互和模型动作结果为基础,控制通过选择合适的视图完成相应功能。
  
  mvc架构有如下优点:
  
  ◆ 多视图使用同一模型。模型与视图分离允许多视图使用同一企业模型。因此,企业级应用模型组件容易实现、测试和维护。
  
  ◆ 容易支持新类型的客户端。支持一个新类型的客户端,只需写一个视图和控制,然后把它连到现存的企业模型中。
  
  分析java pet store应用
  
  视图是用户界面和应用程序的接口。在java pet store中,视图在web层实现。共有三种组件实现视图:jsp页面、jsp自定义标记和javabean。视图部分涉及到三方面内容:
  
  1.屏幕
  
  屏幕是一个页面显示的所有内容。根据需要,在screendefinitions.jsp中定义如下屏幕:
  
  
  
  name:main_screen,default_screen
  
  name:category_screen
  
  name:search_screen
  
  name:product_screen
  
  name:product_details_screen
  
  name:cart_screen
  
  name:checkout_screen
  
  name:placeorder_screen
  
  name:commit_order_screen
  
  name:signin_screen
  
  name:signup_screen
  
  
  
  2.模板
  
  因为要使整个网站的页面具有相同的特征,如每个页面都要有logo、banner等相同的元素,所以采用模板定义页面的不同组成部分。本示例中定义的模板元素有footer.jsp、banner.jsp和index.jsp等。screendefinitions.jsp定义好的屏幕包括这些模板元素,通过include指令包含到页面中。

扫描关注微信公众号