收藏 分销(赏)

Spring+Struts+Hibernate综述性(不错).doc

上传人:pc****0 文档编号:7775086 上传时间:2025-01-16 格式:DOC 页数:35 大小:271.35KB
下载 相关 举报
Spring+Struts+Hibernate综述性(不错).doc_第1页
第1页 / 共35页
Spring+Struts+Hibernate综述性(不错).doc_第2页
第2页 / 共35页
点击查看更多>>
资源描述
spring 目录[隐藏] Spring Spring的起源和背景 Spring简介 为什么需要Spring Spring带给我们什么 Spring框架的好处 Spring能做什么? Spring的下载和安装 Spring的应用实例 Spring主要产品 Spring Spring的起源和背景 Spring简介 为什么需要Spring Spring带给我们什么 Spring框架的好处 Spring能做什么? Spring的下载和安装 Spring的应用实例 Spring主要产品    Spring Logo Spring   spring在英文里有春天、弹簧、跳跃和泉眼的意思。 Spring的起源和背景   Rod Johson在2002年编著的《Expert one to one J2EE design and development》一书中,对Java EE正统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破Java EE传统开发的困境,从实际需求出发,着眼于轻便、灵巧,易于开发、测试和部署的轻量级开发框架。Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。同年他又推出了一部堪称经典的力作《Expert one-to-one J2EE Development without EJB》,该书在Java世界掀起了轩然大波,不断改变着Java开发者程序设计和开发的思考方式。在该书中,作者根据自己多年丰富的实践经验,对EJB的各种笨重臃肿的结构进行了逐一的分析和否定,并分别以简洁实用的方式替换之。至此一战功成,Rod Johnson成为一个改变Java世界的大师级人物。   传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现Write Once及Run Anywhere的承诺。Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。   Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。 Spring简介   Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。   ◆目的:解决企业应用开发的复杂性   ◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能   ◆范围:任何Java应用   简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。   ◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。   ◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。   ◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。   ◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。   ◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。   所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。 为什么需要Spring   你可能正在想“Spring不过是另外一个的framework”。当已经有许多开放源代码(和专有) J2EE framework时,我们为什么还需要Spring Framework?   Spring是独特的,因为若干个原因:   ◆它定位的领域是许多其他流行的framework没有的。Spring关注提供一种方法管理你的业务对象。   ◆ Spring是全面的和模块化的。Spring有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。因此从你的学习中,你可得到最大的价值。例如,你可能选择仅仅使用Spring来简单化JDBC的使用,或用来管理所有的业务对象。   ◆它的设计从底部帮助你编写易于测试的代码。Spring是用于测试驱动工程的理想的framework。   Spring对你的工程来说,它不需要一个以上的framework。Spring是潜在地一站式解决方案,定位于与典型应用相关的大部分基础结构。它也涉及到其他framework没有考虑到的内容。 Spring带给我们什么   ◆方便解耦,简化开发   通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。   ◆AOP编程的支持   通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。   ◆声明式事务的支持   在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。   ◆方便程序的测试   可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。   ◆方便集成各种优秀框架   Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hession、Quartz)等的直接支持。   ◆降低Java EE API的使用难度   Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。   ◆Java 源码是经典学习范例   Spring的源码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。 Spring框架的好处   在我们进入细节以前,让我们看一下Spring可以给一个工程带来的一些好处:   ◆Spring能有效地组织你的中间层对象,无论你是否选择使用了EJB。如果你仅仅使用了Struts或其他的包含了J2EE特有APIs的framework,你会发现Spring关注了遗留下的问题。   ◆Spring能消除在许多工程上对Singleton的过多使用。根据我的经验,这是一个主要的问题,它减少了系统的可测试性和面向对象特性。   ◆Spring能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读Javadoc乃至源编码吗?有了Spring,你可很简单地看到类的JavaBean属性。倒置控制的使用(在下面讨论)帮助完成这种简化。   ◆Spring能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。   ◆Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。   ◆使用Spring构建的应用程序易于单元测试。   ◆Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。   ◆Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适于许多web应用。例如,Spring能使用AOP提供声明性事务而不通过使用EJB容器,如果你仅仅需要与单个的数据库打交道,甚至不需要JTA实现。   ■Spring为数据存取提供了一致的框架,不论是使用JDBC或O/R mapping产品(如Hibernate)。   Spring确实使你能通过最简单可行的解决办法解决你的问题。这些特性是有很大价值的。   总结起来,Spring有如下优点:   ◆低侵入式设计,代码污染极低   ◆ 独立于各种应用服务器,可以真正实现Write Once,Run Anywhere的承诺   ◆Spring的DI机制降低了业务对象替换的复杂性   ◆Spring并不完全依赖于Spring,开发者可自由选用Spring框架的部分或全部 Spring能做什么?   Spring提供许多功能,在此我将快速地依次展示其各个主要方面。   首先,让我们明确Spring范围。尽管Spring覆盖了许多方面,但我们已经有清楚的概念,它什么应该涉及和什么不应该涉及。   Spring的主要目的是使J2EE易用和促进好编程习惯。   Spring不重新开发已有的东西。因此,在Spring中你将发现没有日志记录的包,没有连接池,没有分布事务调度。这些均有开源项目提供(例如Commons Logging 用来做所有的日志输出,或Commons DBCP用来作数据连接池),或由你的应用程序服务器提供。因为同样的的原因,我们没有提供O/R mapping层,对此,已有有好的解决办法如Hibernate和JDO。   Spring的目标是使已存在的技术更加易用。   例如,尽管我们没有底层事务协调处理,但我们提供了一个抽象层覆盖了JTA或任何其他的事务策略。   Spring没有直接和其他的开源项目竞争,除非我们感到我们能提供新的一些东西。例如,象许多开发人员,我们从来没有为Struts高兴过,并且感到在MVC web framework中还有改进的余地。在某些领域,例如轻量级的IoC容器和AOP框架,Spring有直接的竞争,但是在这些领域还没有已经较为流行的解决方案。(Spring在这些区域是开路先锋。)   Spring也得益于内在的一致性。   所有的开发者都在唱同样的的赞歌,基础想法依然是Expert One-on-One J2EE设计与开发的那些。   并且我们已经能够使用一些主要的概念,例如倒置控制,来处理多个领域。   Spring在应用服务器之间是可移植的。   当然保证可移植性总是一次挑战,但是我们避免任何特定平台或非标准化,并且支持在WebLogic,Tomcat,Resin,JBoss,WebSphere和其他的应用服务器上的用户。 Spring的下载和安装   下载和安装Spring请按如下步骤进行。   (1)登录http://www.springframework.org/download站点,下载Spring的最新稳定版本。最新版本为Spring Framework 2.5.5.建议下载 spring-framework-2.5.5-with-dependencies.zip这个压缩包不仅包含Spring的开发包,而且包含Spring编译和运行所依赖的第三方类库。   下载地址:   解压缩下载到的压缩包,解压缩后的文件夹应用如下几个文件夹。   ◆dist:该文件夹下放Spring的jar包,通常只需要Spring.jar文件即可。该文件夹下还有一些类似spring-Xxx.jar的压缩包, 这些压缩包是spring.jar压缩包的子模块压缩包。除非确定整个J2EE应用只需要使用Spring的某一方面时,才考虑使用这中分模块压缩包。通常建议使用Spring.jar   ◆docs:该文件夹下包含spring的相关文档、开发指南及API参考文档。   ◆lib:该文件夹下包含spring编译和运行所依赖的第三方类库,该路径下的类库并不是spring必需的,但如果需要使用第三方类库的支持,这里的类库就是必需要的。   ◆samples:该文件夹下包含Spring的几个简单例子,可作为Spring入门学习的案例。   ◆src:该文件夹下包含Spring的全部源文件,如果开发过程中有地方无法把握,可以参考该源文件,了解底层实现。   ◆test:该文件夹下包含Spring的测试示例。   ◆tiger:该路径下存放关于JDK的相关内容   ◆解压缩后的文件夹下,还包含一些关于Spring的License和项目相关文件   (2)将spring.jar复制到项目的CLASSPATH路径下,对于Web应用,将spring.jar文件复制到WEB-INF/lib路径下,该应用即可以利用Spring框架了。   (3)通常Spring的框架还依赖于其他一些jar文件,因此还须将lib下对应的包复制到WEB-INF/lib路径下,具体要复制哪些jar文件,取决于应用所需要使用的项目。通常需要复制cglib,dom4j,jakarta-commons,log4j等文件夹下的jar文件。   (4)为了编译java文件,可以找到Spring的基础类,将Spring.jar文件的路径添加到环境变量CLASSPATH中。当然,也可以使用ANT工具,但无须添加环境变量。如果使用Eclipse或者NetBeans等IDE时,也不需要设置环境变量。 Spring的应用实例   1.新建一个登陆页面:loginActionSupport.jsp,代码如下   <%@page contentType="text/html;charset=GBK" isELIgnored="false"%>   <html>   <head><title>实现用户登录实例,struts和Spring整合</title></head>   <body>   <font size=’22’> $<br> </font>   <form name="form1" action="/myLogin/loginActionSupport.do" method="post">   用户名:<input type="text" name="username" value="${user.username}"/><br>   密码:<input type="password" name="password" value="${user.password}"/><br>   <input type="submit" name=”method” value="提交"/>   </form>   </body>   </html>   2.创建一个存储登陆用户信息的类:User.java该类继承于ActionForm,代码如下:   package com.zhaosoft.bean;   import org.apache.struts.action.ActionForm;   public class User extends ActionForm {   private String username=null;   private String password=null;   public String getUsername() {   return username;   }   public void setUsername(String username) {   this.username = username;   }   public String getPassword() {   return password;   }   public void setPassword(String password) {   this.password = password;   }   }   3.Com.zhaosoft.action中新建一个LoginActionSupport.java,该类不继承于struts的Action,而是继承于Spring的ActionSupport,代码示例如下:   package com.zhaosoft.action;   import javax.servlet.http.HttpServletRequest;   import javax.servlet.http.HttpServletResponse;   import org.apache.struts.action.ActionForm;   import org.apache.struts.action.ActionForward;   import org.apache.struts.action.ActionMapping;   import org.springframework.context.ApplicationContext;   import org.springframework.web.struts.ActionSupport;   import com.zhaosoft.bean.User;   import com.zhaosoft.domain.Login;   public class LoginActionSupport extends ActionSupport {   public ActionForward execute(ActionMapping mapping, ActionForm form,   HttpServletRequest request, HttpServletResponse response)   throws Exception {   // 通过ApplicationContext获取配置文件   ApplicationContext ctx = getWebApplicationContext();   Login login = (Login) ctx.getBean("login");   login.login((User) form);   request.setAttribute("msg", login.getMsg());   request.setAttribute("user", (User) form);   return mapping.findForward("login");   }   } Spring主要产品   * Spring Framework   * Spring Web Flow   * Spring Web Services   * Spring Security (Acegi Security)   * Spring Dynamic Modules For OSGi(tm) Service Platforms   * Spring Batch   * Spring Integration   * Spring LDAP   * Spring IDE   * Spring Modules   * Spring JavaConfig   * Spring Rich Client   * Spring .NET   * Spring BeanDoc “spring”在英汉词典中的解释(来源:百度词典): spring KK: [] DJ: [] n. 1. 春季,春天[U][C] 2. 旺盛时期;青春年少时期[U] 3. 跳跃[C] 4. 弹簧[C] 5. 弹力;活力[U][S] 6. 泉[P1] 7. 根源,源泉[C] 8. 动机[C] vi. 1. 跳,跃 2. 弹起,弹开,反弹 3. 飞快地行动[(+to)] 4. 突然出现,涌现[(+up)] 5. 源(于),来(自)[(+from)] 6. 一跃而成[(+into)] 7. 迅速生长;很快产生 8. 开裂,破裂 9. 【美】请客[(+for)] 10. 爆炸 vt. 1. 使弹起,使弹开 2. 使弹成某种状况[O8] 3. 突然提出(或作出) 4. 使裂开 5. 扭伤 6. 给...上发条 7. 【口】花(钱)[(+for)] 8. 使爆炸 struts 目录[隐藏] Struts的起源 Struts的流程 1 Struts框架结构图Model部分 1 View部分 1 Controller组件 1 Struts框架1. Struts压缩包内容 1 2.Struts体系结构 1 3.Struts框架中的组件 Struts2 Struts的起源 Struts的流程 1 Struts框架结构图Model部分 1 View部分 1 Controller组件 1 Struts框架1. Struts压缩包内容 1 2.Struts体系结构 1 3.Struts框架中的组件 Struts2    Struts的起源   Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫"Struts",是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。   早期Smalltalk 程序语言便采用了MVC(Model-View -Controller) 模式( Patterns ) 以增加程序代码弹性,MVC模式将程序代码整理切割为三部份,Model 部分是业务与应用领域( Business domain) 相关逻辑、管理状态之对象,Controller 部分接收来自View 所输入的资料并与Model 部分互动,是业务流程控制( Flow Control) 之处,View 部分则负责展现资料、接收使用者输入资料。在Java 应用中,JFC/Swing、AWT、JSP 皆是可用作View 之技术规格,而JavaBean 与Enterprise JavaBean 规格则可用于Model 程序代码,一旦应用程序以MVC 模式加以适当(的)分割,Model 部分程序代码可在不同使用者接口外观(的)应用程序中重复使用。   随着JSP 与Servlet 技术大量应用于以Web 为基础(的)应用程序,Java 开发人员群体认为应以较佳之模式以提升Web 应用程序之可维护性与重复使用性。早期JSP 规格书中曾列举两种可行之JSP 应用架构,分别为Model1 与Model 2。   在Model 1 架构中,JSP 直接处理Web 浏览器送来之请求( Request ),并辅以JavaBean 处理应用相关逻辑。Model 1 架构单纯编写比较容易,但在Model 1 中JSP 可能同时肩负View 与Controller 角色,两类程序代码有可能混杂而不易维护。而Model 2 中将Servlet 纳入架构中扮演前端Controller 角色,将Web 浏览器送出之请求集中送至Servlet ,Servlet 可集中管理使用者登入、权限控制、多国语言转换等前置处理,再视需求转向给对应之JSP 处理。Model 2 中采用了较佳之MVC 模式,但增加了编写复杂度。   Struts是Apache软件基金下Jakarta项目的一部分。除Struts之外,还有其他成功的开源产品,包括Tomcat, Ant 和Velocity。2000 年Craig R. McClanahan 先生贡献了他编写的JSP Model 2 架构之Application Framework 原始程序代码给Apache 基金会,成为Apache Jakarta 计划Struts Framework 前身。   开始的代码基础从2000年5月开始开发,直到2001年6月,1.0版本发布。有30 多个开发者参与进来,并有数千人参与到讨论组中。Struts 代码基础由一个志愿的Commnitter团队来管理。到2002年,Struts 小组共有9个志愿Commnitter。   Struts框架的主要架构设计和开发者是Craig R.McClanahan。Craig 也是Tomcat 4的主要架构师,以及Java Web Services Developer Pack的主要架构师和实现者。他现在是Sun的JavaServer Faces (JSR-127) 以及J2EE平台的Web层架构的规范领导。Craig R. McClanahan 先生是JCP ExpertGroup 成员之一,曾参与JSP 规格制定与Tomcat 4 之编写,因此Struts Framework 广受Java 开发人员群体所重视。Borland 自2002 年底开始于开发工具JBuilder 中支持Struts Framework。   Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的java架构一样,Struts 也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层,基于如 Java Servlets,JavaBeans,ResourceBundles与XML等标准技术,以及 Jakarta Commons 的一些类库。Struts有一组相互协作的类(组件)、Servlet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是一个传统 MVC设计模式的一种变化类型。   Struts最早是作为Apache Jakarta项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages、Servlet、标签库以及面向对象的技术水准。   Struts的目的是为了减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。   Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。   除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活运用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。   关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。   MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。   说明:加粗括号内为修改的内容 Struts的流程   服务器启动后,根据web.xml加载ActionServlet读取struts-config.xml文件内容到内存。   以登陆为例:第一次进login.jsp会先实例化Form、把默认值(String默认为空字符串,整形默认为0)赋给表单元素。   输入用户名密码提交表单、提交到action属性的login.do,通过ActionServlet读struts-config.xml文件找到 action下的path属性找到.do,通过name属性找form-beans中的form-bean的name属性得到ActionForm的包名类名,先实例化form,把表单的值填充给form,调用form的validate方法验证、ActionErrors返回null表示验证通过,否则失败返回input指定的页面.验证通过会实例化Action,执行Action的excute方法。 Struts框架结构图   相应框架结构如图:   Struts对Model,View和Controller都提供了对应的组件。   在上图中,ActionServlet,这个类是Struts的核心控制器,负责拦截来自用户的请求。   Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。    Model部分   由ActionForm和JavaBean组成,其中ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionFrom里面的请求参数处理用户的请求。   JavaBean则封装了底层的业务逻辑,包括数据库访问等。    View部分   该部分采用JSP实现。   Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应上图的JSP部分。    Controller组件   Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。   系统核心控制器,对应上图的ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。   业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。 Struts框架   struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。   本章详细讨论struts架构。我们将看到struts是如何清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序过程的。我们还将介绍struts提供的类如何使得开发工作更加简单,这些类包括:   l 控制程序流程的类   l 实现和执行程序事务逻辑的类   l 自定义的标记库使得创建和验证HTML表单更加容易    1. Struts压缩包内容   文件夹jakarta-struts-1.0.2包含两个目录,lib和webapps。在lib目录中有使用struts创建应用程序是所需的文件:   文件 描述   jdbc2_0-stdext.jar 包含JDBC2.0 Optional Package API类。如果我们要使用struts提供的数据资源,就需要将这个文件拷贝到WEB-INF\lib下   Struts.jar 包含struts中所有的java类。同样也需要拷贝到WEB-INF\lib下   *.tld 标记库描述器文件,描述了多个struts标记库中的自定义标记。同样要拷贝到WEB-INF\lib下   在webapps目录下有如下文件:   Web应用程序 描述   Struts-blank.war 一个简单的web应用程序   Struts-documentation.war 包含struts站点上所有struts文档   Struts-example.war Struts很多特性的示范   Struts-exercisetaglib.war 主要用于对自定义标签库进行增加而使用的测试页,但也可以示范如何使用struts标记   Struts-template.war 包含struts模板标记的介绍和范例   Struts-upload.war 一个简单的例子,示范如何使用struts框架上传文件    2.Struts体系结构   让我们从MVC角度观察struts框架中的组件   框架中三个部分:模型,视窗和控制器。   ◆模型   在struts框架中,模型分为两个部分:   l 系统的内部状态   l 可以改变状态的操作(事务逻辑)   内部状态通常由一组ActinForm JavaBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。   大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服