资源预览内容
第1页 / 共70页
第2页 / 共70页
第3页 / 共70页
第4页 / 共70页
第5页 / 共70页
第6页 / 共70页
第7页 / 共70页
第8页 / 共70页
第9页 / 共70页
第10页 / 共70页
亲,该文档总共70页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Struts Framework介绍Struts Framework介绍目录前 言3一、MVC概述41MVC概念42MVC设计模式43MVC的优点4二、Struts概述51Struts概念52Struts的MVC实现机制53Struts的配置文件struts-config.xml74Struts的工作流程7三、Struts应用的配置81配置web.xml8(1).配置Struts的ActionServlet8(2).声明ActionServlet的初始化参数9(3).配置Struts标签库92配置struts-config.xml10(1).元素10(2).元素10(3).元素12(4).元素12(5).元素13(6).元素14(7).元素16(8).元素17(9).元素183配置多应用模块19四、Struts组件201. ActionServlet类202. Action类203. Struts的内置Action类20(1). org.apache.struts.actions.ForwardAction类21(2). org.apache.struts.actions.IncludeAction类21(3). org.apache.struts.actions.DispatchAction类22(4). org.apache.struts.actions.LookupDispatchAction类24(5). org.apache.struts.actions.SwitchAction类264. ActionForward类275. ActionForm类27五、Struts标签库291Struts HTML标签库29(1).标签29(2).和标签30(3).标签32(4).标签32(5).标签33(6).标签34(7).标签34(8).标签35(9).标签35(10).标签36(11).标签36(12).标签37(13).标签38(14).标签38(15).标签39(16).标签40(17).标签40(18).标签41(19).标签432Struts Bean标签库44(1).标签44(2).标签45(3).标签463Struts Logic标签库46(1).进行比较运算的Logic标签47(2).进行字符串匹配的Logic标签48(3).判断指定内容是否存在的Logic标签48(4).进行循环遍历的Logic标签49(5).进行请求转发或重定向的Logic标签53六、有关Struts中的其他常用功能531.利用Token解决重复提交532Struts应用的国际化553Validator验证框架62前 言Struts是Apache软件组织提供的一项开放源代码项目,它为Java Web应用提供了模型-视图-控制器(Model-View-Controller,MVC)框架,尤其适用于开发大型可扩展的Web应用。Struts为Web应用提供了一个通用的框架,使得开发人员可以把精力集中在如何解决实际的业务问题上,而非繁杂的代码本身。此外,Struts框架还提供了许多可供扩展和定制的地方,使得应用程序可以方便地扩展框架,来更好地适应用户的实际需求。虽然学习Struts需要一定的时间和精力,但一旦掌握了它,就可以大大简化Web应用的开发过程,提高开发效率,缩短开发周期,从而达到事半功倍的效果。一、 MVC概述1MVC概念MVC是Model-View-Controller的简称,即模型-视图-控制器。MVC是在20世纪80年代发明的一种软件设计模式,至今已被广泛使用,受到了越来越多的Web开发者的欢迎。2MVC设计模式MVC是一种设计模式,它强制性地把应用程序的输入、处理和输出分开。MVC把应用程序分成三个核心模块:模型、视图和控制器,它们分别担负不同的任务。a.模型模型是应用程序的主体部分,表示业务数据和业务逻辑。一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。b.视图视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。c.控制器控制器接受用户的输入并调用模型和视图去完成用户的需求。当Web用户单击Web页面中的提交按钮来发送HTML表单时,控制器接收请求并调用相应的模型组件去处理请求,然后再调用相应的视图来显示模型返回的数据。所以MVC的整个处理过程就是:首先控制器接收用户的请求,并决定应该调用哪个模型进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。3MVC的优点首先,多个视图能共享一个模型。如今,同一个Web应用程序会提供多种用户界面,例如用户希望既能通过浏览器来收发电子邮件,还希望通过手机也能访问,这就要求Web网站同时提供Internet界面和WAP界面。在MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性。其次,模型是自包含的,与控制器和视图保持相对独立,所以可以方便地改变程序的数据层和业务规则。如果把数据库从MySQL移植到Oracle,只需改变模型即可。一旦正确地实现了模型,不管数据源的类型是什么,视图都会正确地显示它们。由于MVC的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松耦合的构件。此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来连接不同的模型和视图去完成用户的需求,也可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进行处理,然后选择适当的视图将处理结果显示给用户。二、 Struts概述1Struts概念对于开发Web应用,要从头设计并开发出个一个可靠、稳定的框架并不是一件容易的事。幸运的是,随着Web开发技术的日趋成熟,在Web开发领域出现了一些现成的优秀的框架,开发者可以直接使用它们,而Struts就是其中之一,并且是基于MVC的Web应用框架。2Struts的MVC实现机制Struts实际上就是一个基于MVC模式的Web应用框架。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionServlet和Action来实现,视图则由一组JSP文件构成。下图显示了Struts实现的MVC框架。浏览器Web服务器(控制器)ActionServlet(视图)JSP Action Action Action模型JavaBeanEJBstruts-config.xmlServlet/JSP容器a. 模型模型表示应用程序的状态和业务逻辑。对于大型应用,业务逻辑通常由JavaBean或EJB组件来实现。b. 视图视图就是一组JSP文件。在这些JSP文件中没有业务逻辑,也没有模型信息,只有标签,这些标签可以是标准的JSP标签,也可以是Struts标签。此处,通常把Struts框架中的ActionForm Bean也划分到视图模块中。ActionForm Bean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。Struts框架利用ActionForm Bean来进行视图和控制器之间表单数据的传递。Struts框架把用户输入的表单数据保存在ActionForm Bean中,把它传递给控制器,控制器可以对ActionForm Bean中的数据进行修改,JSP文件使用Struts标签读取修改后的ActionForm Bean的信息,重新设置HTML表单。c. 控制器控制器由ActionServlet类和Action类来实现。ActionServlet类是Struts框架中的核心组件。它在MVC模型中扮演中央控制器的角色。ActionServlet主要负责接收HTTP请求信息,根据配置文件struts-config.xml的配置信息,把请求转发给适当的Action对象。Action类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程。对于小型简单的应用,Action类本身也可以完成一些实际的业务逻辑。对于大型应用,Action充当用户请求为业务逻辑处理之间的适配器,其功能就是将请求与业务逻辑分开,Action根据用户请求调用相关的业务逻辑组件。Action类侧重于控制应用程序的流程,而不是实现应用程序的逻辑。将业务逻辑独立出来,可以提高应用程序的灵活性和可重用性。当ActionServlet控制器收到用户请求后,把请求转发到一个Action实例。如果这个实例不存在,控制器会首先创建它,然后调用这个Action实例的execute()方法。Action的execute()方法返回ActionForward对象,它封装了把用户请求再转发给其他Web组件的信息。用户定义自己的Action类,即Action基类的子类时,必须覆盖execute()方法。在Action基类中该方法返回null。3Struts的配置文件struts-config.xml上面讲到一个用户请求是通过ActionServlet来处理和转发的。那么,ActionServlet如何决定把用户请求发给哪个Action对象呢?这就需要一些描述用户请求路径和Action映射关系的配置信息了。在Struts中,这些配置映射信息都存储在特定的XML文件struts-config.xml中。在该配置文件中,每一个Action的映射信息都通过一个元素来配置。这些配置信息在系统启动的时候被读入内存,供Struts
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号