J2EE开发常用软件体系架构模式

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

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

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

资源描述

J2EE开发常用软件体系架构模式华南师范大学软件学院作者:杨劲松struts,hibernate,spring及其衍生框架主要内容:单击此处添加文字内容软件体系架构单击此处添加文字内容J2EE的体系架构单击此处添加文字内容其他开发框架单击此处添加文字内容SSH框架12431、软件体系架构——软件无处不在4/28/2020华南师范大学软件学院31、软件体系架构——软件开发现状超时超预算被取消按时按预算完成15%25%60%设计集成和系统测试50-80%4/28/2020华南师范大学软件学院41、软件体系架构——软件危机的案例4/28/2020华南师范大学软件学院5IBM公司的OS/360,共约100万条指令,花费了5000个人年;经费达数亿美元,而结果却令人沮丧,错误多达2000个以上,系统根本无法正常运行。OS/360系统的负责人Brooks这样描述开发过程的困难和混乱:“…像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。…”1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序:DO5I=1,3误写为:DO5I=1.31967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁1、软件体系架构——软件为什么会失效4/28/2020华南师范大学软件学院61、软件体系架构——产生软件危机的根源4/28/2020华南师范大学软件学院7软件规模越来越大、复杂度越来越高用户需求不明确缺乏正确有效的理论及工程指导——对用户要求、实现条件没有完整准确的分析就匆忙编写程序,是许多软件开发失败的主要原因在此种背景下,人们认识到软件体系架构的重要性软件工程研究初期重点放在数据结构和算法的选择•如Knuth提出了数据结构+算法=程序1、软件体系架构——什么是软件体系架构DewaynePerry和A1exanderWo1f软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。•处理构件负责对数据进行加工•数据构件是被加工的信息•连接构件把体系结构的不同部分组组合连接起来MaryShaw和DavidGarlan软件体系结构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计——关于整体系统结构设计和描述方面的一些问题,如:•全局组织和全局控制结构•关于通讯、同步与数据存取的协议,等4/28/2020华南师范大学软件学院81、软件体系架构——什么是软件体系架构Kruchten软件体系结构有四个角度,它们从不同方面对系统进行描述:•概念角度描述系统的主要构件及它们之间的关系;•模块角度包含功能分解与层次结构;•运行角度描述了一个系统的动态结构;•代码角度描述了各种代码和库函数在开发环境中的组织不同研究背景、应用背景的人员从不同的角度给出了多达近百种定义,但有两点共识:软件体系结构对于软件开发具有重要意义,必须采用良好的设计原则达到良好的结构设计主流的定义都认为:软件体系结构是用来表示软件系统的总体结构的,该结构由软件构件和构件之间的关系及约束构成4/28/2020华南师范大学软件学院92、J2EE的体系架构J2EE为企业应用系统的开发提供了一种多层分布式企业应用模型按应用逻辑按功能不同可以划分为不同类型的组件4/28/2020华南师范大学软件学院•客户层,运行在客户计算机上的组件。•Web层,运行在J2EE服务器上的组件。•业务层,同样是运行在J2EE服务器上的组件。•企业信息系统层(EIS),是指运行在EIS服务器上的软件系统。J2EE分层结构2、J2EE的体系架构J2EE4/28/2020华南师范大学软件学院11用户与系统的接口逻辑功能是显示数据可以是在客户端层内运行的浏览器、基于Java的程序或者其它web型编程环境2、J2EE的体系架构J2EE4/28/2020华南师范大学软件学院12Web层•生成Web页面和Web页面中的动态内容•客户端传来的Web请求进行打包•Web层通常在Web服务器中实现。业务层(包含了企业Web应用的大部分业务逻辑)•执行全部必须的•会话管理•客户层和Web层中数据访问的管理等2、J2EE的体系架构J2EE4/28/2020华南师范大学软件学院13负责运行企业信息系统现有应用和数据仓库的组合可以包含企业资源规划(ERP)、大型主机事务处理、数据库系统及其它遗留下来的信息系统等许多系统2、J2EE的体系架构4/28/2020华南师范大学软件学院14——什么是模式?什么是框架?模式,即pattern。其实就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是模式。模式分为:体系结构模式设计模式框架,即framework。建立在体系结构模式的基础上。包括大量组件,设计模式,与某一领域的具体应用无关。C/S:以数据库为中心B/S多层架构将显示、业务运算、数据库等功能完全分离,杜绝彼此的耦合与影响,从而实现松耦合和良好的可维护性。3、SSH框架4/28/2020华南师范大学软件学院15——SSH简介Struts(表示层)+Spring(业务层)+Hibernate(持久层)Struts(表示层框架)•主要作用是界面展示,接收请求,分发请求•在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。(View:沿用JSP,HTTP,Form,Tag;Controller:ActionServlet,struts-config.xml,Action)4/28/2020华南师范大学软件学院16Spring(业务层框架)•一个整合的框架,能够很好地黏合表示层与持久层。3、SSH框架——SSH简介Struts(表示层)+Spring(业务层)+Hibernate(持久层)4/28/2020华南师范大学软件学院17Hibernate(持久层框架)•只负责与关系数据库的操作3、SSH框架——SSH简介Struts(表示层)+Spring(业务层)+Hibernate(持久层)4/28/2020华南师范大学软件学院183、Struts——Model1与Model2设计模式以JSP为中心的开发模型,称为Model1(JSP+JAVABEAN)业务逻辑与表示逻辑混和,不利维护与重用HTML中嵌入了大量的JAVA代码验证、流程控制、更新程序的状态全部在JSP中完成BROWSERJSPRequestResponseJavaBeanApplicationServerEnterpriseServers/DataSources传统的Model1(JSP+JAVABEAN)4/28/2020华南师范大学软件学院193、Struts——Model1与Model2设计模式以servlet为中心的开发模型,Model2(JSP+Servlet+JAVABEAN)BROWSER(Controller)ServletRequestResponse(Model)JavaBeanEnterpriseServers/DataSources(View)JSPModel2(JSP+Servlet+JAVABEAN)MVC是一种设计模式,它强制性地把应用程序的输入、处理和输出分开。MVC将应用程序分成3部分:模型、视图和控制器。4/28/2020华南师范大学软件学院203、Struts——MVC模式MVC模式模型(Model)是应用程序的主体部分。模型表示业务数据,或者业务逻辑。视图(View)是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。控制器(Controller)工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。(控制器)接受用户请求调用模型响应用户请求选择视图显示响应结果(视图)显示模型状态接受数据更新请求把用户输入数据传给控制器(模型)代表应用程序状态响应状态查询处理业务流程通知视图业务状态更新方法调用事件选择视图业务处理用户请求状态查询通知数据更新4/28/2020华南师范大学软件学院213、Struts——Struts框架概述Struts是一个现成的、优秀的、基于MVC的Web应用框架。浏览器Web服务器ActionServletFormBean(模型)JavaBeanEJBStruts-config.xml数据库MessageResouseJSPActionAction(视图)(控制器)Servlet/JSP容器JSP页面•显示模型的数据、接受模型的数据更新,通知更新视图•接受用户输入的数据传送控制器ActionFormBean•封装、验证表单数据•在控制器和视图之间传递表单数据Struts框架结构4/28/2020华南师范大学软件学院223、Struts——Struts框架概述Struts是一个现成的、优秀的、基于MVC的Web应用框架。浏览器Web服务器ActionServletFormBean(模型)JavaBeanEJBStruts-config.xml数据库MessageResouseJSPActionAction(视图)(控制器)Servlet/JSP容器ActionServlet(中央控制器)•主要负责将用户的Http请求封装后,根据配置文件的指定描述,转发给适当的处理器Action(处理器)•真正实现应用程序的事务逻辑,处理用户请求Struts框架结构4/28/2020华南师范大学软件学院233、Struts——Struts框架概述Struts是一个现成的、优秀的、基于MVC的Web应用框架。浏览器Web服务器ActionServletFormBean(模型)JavaBeanEJBStruts-config.xml数据库MessageResouseJSPActionAction(视图)(控制器)Servlet/JSP容器•业务逻辑处理•管理数据的存储和一致性•调用其他应用Struts框架结构4/28/2020华南师范大学软件学院243、Struts——Struts的程序流程JavaBeanJSP页面ClientActionActionServletActionForm1.HTTP请求2.填充FormBean3.转发HTTP请求4.调用ActionForm5.调用JavaBean6.回送ActionForward7.转发HTTP请求8.调用JavaBean9.HTTP响应Struts-config.xmlStruts的程序流程4/28/2020华南师范大学软件学院253、Struts——Struts1.x实例Struts1.x实例(实现用户登录操作)用户将看到一个登录页面,要求用户输入用户名以及密码如果用户名以及密码都是admin,提示登录成功否则提示登录失败Login.jsplogin_error.jsplogin_success.jsp4/28/2020华南师范大学软件学院263、Struts——Struts1.x实例Struts1.x实例(实现用户登录操作)①下载并解压Struts项目从Apache网站下载struts;将压缩包解压到一个目录,此目录为STRUTS_HOME目录;②安装Struts将STRUTS_HOME/lib目录下的所有.jar文件拷贝到刚创建的web项目的/WEB-INF/lib目录下;配置web.xml,添加Servlet映射配置;③编写Action类、编写ActionForm类Action类处理业务流程;ActionForm类不是必须的,如果要接收客户端提交的数据时需要;④配置struts-config.xml在struts-config.xml文件中配置Action和ActionForm;⑤编写相应JSP页面4/28/2020华南师范大学软件学院273、Struts——web.xml的配置servlet

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

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

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

×
保存成功