版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 框架技术概述1框架概述框架,即framework.其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。Java框架跟建筑中的框架式结构是一样的。使用了框架(钢筋混凝土)以后,你所专著的只是业务(非承重墙构建不同格局),当然是在遵守框架的协议上开发业务。好的框架都是松耦合的,易配置的。框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。框架的概念最早起
2、源于Smalltalk环境,其中最著名的框架是Smalltalk 80的用户界面框架MVC(Model -View-Controller)。随着用户界面框架Interviews Linton 89和ET+ Weinand 89 的开发和发布,框架研究越来越受到研究人员的重视。虽然框架研究最初起源于用户界面领域,但它还被成功地应用到其他领域中,如操作系统Russo 90、火警系统 Molin 96a,Molin 96b 等。Taligent公司于1992年成立后,框架研究受到了广泛的重视。该公司计划基于框架来开发一个完整的面向对象操作系统。另外,该公司还发布了一 套支持快速应用开发的工具集Com
3、monPoint,其中包括了上百个面向对象框架 Andert 94,Cotter 95.框架目前还没有统一的定义,其中Ralph Johnson所给出的定义基本上为大多数研究人员所接受:一个框架是一个可复用设计,它是由一组抽象类及其实例间协作关系来表达的 Johnson 98.这个定义是从框架内涵的角度来定义框架的,当然也可以从框架用途的角度来给出框架的定义:一个框架是在一个给定的问题领域内,一个应用程序的一部分设计与实现Bosch 97.从以上两个定义可以看出,框架是对特定应用领域中的应用系统的部分设计和实现,它定义了一类应用系统(或子系统)的整体结构。框架将应用系统划分为类和对象,定义类和
4、对象的责任,类和对象如何互相协作,以及对象之间的控制线程。这些共有的设计因素由框架预先定义,应用开发人员只须关注于特定的应用系统特有部分。框架刻画了其应用领域所共有的设计决策,所以说框架着重于设计复用,尽管框架中可能包含用某种程序设计语言实现的具体类。一个基于框架开发的应用系统包含一个或多个框架,与框架相关的构件类,以及与应用系统相关的功能扩展。与应用系统相关的扩展包括与应用系统相关的类和对象。应用系统可能仅仅复用了面向对象框架的一部分,或者说,它可能需要对框架进行一些适应性修改,以满足系统需求。WAF:全称:WEB APPLICATION FRAMEWORK主要应用方面:EJB层,(WEB层
5、也有,但是比较弱)。主要应用技术:EJB等出处: MVC和其他良好的设计模式。SUN的网站上有技术资料,最好下载PetStore来研究,WEBLOGIC里自带此系统,源码在beaweblogic700samplesserversrcpetstore.这是学习了解J2EE的首选框架。免费。Struts:主要应用方面:WEB层。主要应用技术:JSP,TagLib,JavaBean,XML等出处:/struts/index.html简述:这是APACHE的开源项目,目前应用很广泛。基于MVC模式,结构很好,基于JSP.Jbuilder8里已经集成了ST
6、RUTS1.02的制作。免费。简述WAF+STRUTS结合的例子:WEB层用STRUTS,EJB层用WAF:JSP(TagLib)>ActionForm>Action > Event>EJBAction>EJB >DAO>Database JSP(TagLib) (forward) <Action <EventResponse <Turbine:主要应用方面:WEB层。主要应用技术:servlet等出处:/turbine/index.html简述:这是APACHE的开源项目。基于SERV
7、LET.据说速度比较快,基于service(pluggable implementation可插拔的执行组件)的方式提供各种服务。免费。Spring框架Spring框架是一个分层的Java/J2EE应用程序框架,基于Expert One-on-One J2EE设计和发行的代码。Spring框架提供一种简单的开发技术,用于自动化处理工程中大量的属性文件和助理类。Hibernate框架Hibernate是一适合于Java语言的对象-关系映射(ORM解决方案。它也是开源软件,类似Struts,并且在LGPL保护下发布。Hibernate被一群来自世界各地的Java软件开发者所共同开发。它提供一个易用
8、的框架来实现把一个面向对象的域模型映射到一传统的关系数据库。它不仅负责从Java类到数据库表格(以及来自Java数据类型的SQL数据类型的映射,而且还提供数据查询和检索能力,并能大大减少花在SQL和JDBC手工数据处理上的开发时间。Hibernate的目标是减轻开发者的与大量普通的数据持续性相联系的编程任务。Hibernate还能够适应开发进程,无论它是刚开始设计还是来自一现成的数据库。Hibernate可以自动生成SQL,使开发者摆脱了手工处理结果集和进行对象转化的繁琐任务,并能使应用程序移植到所有的SQL数据库。它还能提供透明的持续性,对持续性类的唯一的要求的是实现一个无参数的构造器。1.
9、3 struts框架的地位经过数年的“框架大战”,Java界的各种框架找到了自己应有的位置。Spring+Hibernate+Struts已成为Java开发的主流体系。在这个体系中,Spring+Hibernate的地位应该说短期内是难以撼动了。除了新兴的Jboss Seam作为挑战者之外,几乎难有劲敌。Java B/S编程中历来战火最激烈的其实还在Web层,框架的数量最多,争议最大。一切由Struts而起,而Struts最终也坐稳了第一个时代的王座。在技术层面,Struts 1.x已经被无数人抱怨过、批评过,但终于还是稳坐王位,这充分说明了习惯的力量。“稳定压倒一切”,这句话在IT技术领域仍
10、旧适用。在2007年CSDN举办的调查中,我们详细的分析了Java开发框架的使用状况,发现主要使用的开发框架JSP占26%,Struts占21%,Hibernate占17%,Spring MVC占11%,EJB占7%,JSF占6%,Spring Web Flow和POJO各占4%,其它占4%。就这一调查数据,我们不难看出,Spring+Hibernate+Struts的优势地位还是相当的明显。Struts和Hibernate几乎已经成了JavaEE应用的常规配置,21%的开发者用到 Struts,用到Hibernate的开发者也有17%;在一个成熟的技术平台上,各个项目的技术方案会在很大程度上
11、趋同因为所有未知领域都已经被探明,各种问题都有对应的最佳实践,架构师们可以参考的成功案例越来越多。就拿 JavaEE来说,今天的架构师们需要考虑的问题比之三年前已经简单多了,这就是成熟的价值。2 struts框架简介21经典MVC设计模式 Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫"Struts",是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚
12、至我们踩高跷时候的基础支撑。这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。综述相应框架结构如图: Struts对Model,View和Controller都提供了对应的组件。 在上图中,ActionServlet,这个类
13、是Struts的核心控制器,负责拦截来自用户的请求。 Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。Model部分由JavaBean组成,ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionFrom里面的请求参数处理用户的请求。 JavaBean则封装了底层的业务逻辑,包括数据库访问等。View部分该部分采用JSP实现。Struts提供了丰富的标签库,通过标签库可以减少
14、脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应上图的JSP部分。Controller组件Controller组件有两个部分组成系统核心控制器,业务逻辑控制器。 系统核心控制器,对应上图的ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。 业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。22环境搭建 第一步,下载:官方网站:解压后,目录中有如下四个文
15、件夹:apps几个例子,可以布署在服务器中用来演示docs文档说明lib需要用到的jar包src struts源文件在项目中加入struts支持第二步:创建一个WEB工程第三步:在工程中添加如下jar包当然我们并不用将所有jar包都加入工程,不过有些必须的加入的,不能少下面简介一下,各jar 包作用:apache公司写了一系列的工具包,比如comm-XXXXX这些呢都是可以独立的,而struts.jar是依存这些的, 比如说commons-collections.jar是扩展了集合框架的一个工具包,commons-beanutils.jar是对javaBean操作的一个工具包,commons-
16、lang.jar扩展了java中的lang包, commons-validator.jar是做验证的一个工具包,而struts.jar是struts框架的核心包,但它必须依存于这些包. struts框架中必须要加的包: commons-beanutils.jar : commons-beanutils.jar 提供对Java 反射和自省API的包装. commons-digester.jar :Digester基于规则的XML文档解析,主要用于XML到Java对象的映射. commons-fileupload.jar 上传commons-logging.jar commons-validato
17、r.jar 验证struts.jar(在后面的版本名为:struts-core-1.3.10.jar)antlr.jar:语法分析生成器Digester基于规则的XML文档解析,主要用于XML到Java对象的映射. commons-beanutils.jar 提供对Java 反射和自省API的包装. dom4j.jar: dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM develope
18、rWorks上面可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。我早在将近两年之前就开始使用dom4j,直到现在。如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这是必须使用的jar包,Hibernate用它来读写配置文件。 commons-collections.jar: Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。必须使用的jar包。 commons-beanutils.jar:
19、Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-lang.jar: Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。 commons-logging.jar: Apache Commons包中的一个,包含了日志功能,必须使用的jar包。这个包本身包含了一个Simple Logger,但是功能很弱。在运行的时候它会先在CLASSPATH找log4j,如果有,就使用log4j,如果没有,就找JDK1.4带的java.util.logging,如果也找不到就用Simple Lmons-logging.ja
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 政府采购车辆管理制度
- 采购部部门管理制度汇编
- 采购集中招聘制度范本
- 采购项目风险防控制度
- 采购验收储存制度
- 重点药品采购备案制度
- 钢板采购预警管理制度
- 2025年前台沟通礼仪练习集
- 多模态遥感数据的高效检索与变化分析方法研究
- 房建项目施工阶段商务策划管理
- 2026年安庆医药高等专科学校单招职业适应性测试题库及参考答案详解(新)
- 2026年安徽审计职业学院单招职业技能测试题库参考答案详解
- 2026年3月广西桂林市七星区专职化社区工作者招聘26人考试参考试题及答案解析
- 2026年湖南张家界桑植县招聘20名城市社区专职工作者笔试备考试题及答案解析
- 2025-2026学年冀教版(2024)小学信息技术四年级上册(全册)教学设计(附目录P178)
- 2026山东铁路投资控股集团有限公司招聘80人考试备考试题及答案解析
- 融媒体中心廉政监督制度
- 智研咨询发布:中国基因编辑行业市场现状及投资前景分析报告
- 2026春小学美术岭南版(2024)三年级下册美术教学计划、教案及每课教学反思(附目录)
- 人力资源服务行业安全生产应急预案
- 2025早产儿经口喂养临床实践专家共识解读课件
评论
0/150
提交评论