第02章 Struts 2基础

上传人:飞*** 文档编号:7798427 上传时间:2017-08-10 格式:PPT 页数:79 大小:1.01MB
返回 下载 相关 举报
第02章  Struts 2基础_第1页
第1页 / 共79页
第02章  Struts 2基础_第2页
第2页 / 共79页
第02章  Struts 2基础_第3页
第3页 / 共79页
第02章  Struts 2基础_第4页
第4页 / 共79页
第02章  Struts 2基础_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《第02章 Struts 2基础》由会员分享,可在线阅读,更多相关《第02章 Struts 2基础(79页珍藏版)》请在金锄头文库上搜索。

1、第2章 Struts 2基础,2.1 Struts 2框架的发展,2.2 Struts 2工作流程结构,2.3 Struts 2项目开发,2.4 Struts 2项目的运行流程,2.5 程序文件详解,2.1 Struts 2框架的发展,2.1.1 MVC模式的应用MVC是一个设计模式,它强制性地使应用程序的输入、处理和输出分开。使用MVC模式,应用程序被分成三个核心部件:模型(Model,即M)、视图(View,即V)、控制器(Controller,即C)。它们各自处理自己的任务。视图:视图是用户与之交互的界面,在现阶段的应用中,特别是Java EE的应用中,HTML及JSP的应用是最广泛的,

2、当然还有一些页面技术,如Macromedia Flash、XHTML、XML等。视图最大的作用就是输出数据并允许用户操作,它不关心数据的处理及操作的处理等工作,这些处理操作都交由控制器来完成。模型:在这三个部件中,模型拥有最多的处理任务。简单地说,模型部分就是对数据库的操作。它处理的数据是中立的,模型一般被控制器调用。由于模型的代码只写一次就可以被多个视图重用,所以减少了代码的重复性。控制器:控制器主要接收用户的输入并调用模型和视图来完成用户的需求。它本身不输出任何东西做任何处理。它只接收请求并决定调用哪个模型来处理请求,然后确定用哪个视图来显示模型处理返回的数据。,2.1.1 MVC模式的应

3、用,MVC的优点大致有以下几点。(1)低耦合性。视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码。同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。(2)高重用性和可适用性。随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WEB(HTTP)浏览器或者无线浏览器(WAP)。比如,用户可以通过电脑也可通过手机来订购某种产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据

4、没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的仅是改变视图层的实现方式,控制层和模型层无须做任何改变。,2.1.1 MVC模式的应用,(3)较低的生命周期成本。MVC使降低开发和维护用户接口的技术含量成为可能。(4)快速的部署。使用MVC模式使开发时间得到相当大的缩减,它使程序员集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。(5)可维护性。分开视图层和业务逻辑层也使得Web应用更易于维护和修改。(6)有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特

5、征,有利于通过工程化、工具化管理程序代码。,2.1.2 Struts框架应用,一般情况下所说的Struts框架指的是Struts 1框架,而非Struts 2框架。Struts框架是最早出现的MVC框架,能够很好地帮助Java 开发者利用Java EE开发Web项目。Struts框架的工作流程图如图2.1所示。,图2.1 Struts框架的工作流程图,2.1.2 Struts框架应用,从上图可以知道Struts的工作流程如下所述。(1)客户端发出请求,ActionForm封装数据,然后提交给ActionServlet。(2)ActionServlet根据请求信息找到指定的Action,并将请求

6、转发给Action。(3)Action调用JavaBean(即视图)提供的业务逻辑方法处理请求,并返回ActionForward。(4)ActionServlet根据ActionForward信息将请求转发给JSP页面。(5)将最终页面返回给客户端。,2.1.3 WebWork框架应用,WebWork也是一个优秀的基于MVC模式的框架。其优于Struts框架的最突出的特点是:在WebWork的开发过程中,代码已经不再依赖Servlet API了。WebWork框架的工作流程图如图2.2所示。,图2.2 WebWork框架的工作流程图,2.1.4 Struts 2框架的诞生,由于Struts 1

7、设计上的缺陷,使得它渐渐无法满足程序员要求高效、灵活的开发需求,于是很多程序员开始选择其他优秀的开发框架,Struts 1的开发团队也意识到了这一点,开始考虑Struts 1的后续发展,寻找另一个合作伙伴WebWork。WebWork 1.0是在2002年3月发布的,它是Rickard Oberg在研究了其他的Java Web开发框架之后创建出来的,引入了很多新的思想、概念和功能。熟悉Struts 1的读者应该知道,在Struts1中,ActionForm是个让程序员头痛的问题,而WebWork解决了ActionForm的问题,同时在WebWork中,可以使用普通的JavaBean对象,甚至A

8、ction本身来接收表单提交的数据。不仅如此,WebWork中的Action没有和Servlet API耦合在一起,大大提高了程序的松耦合性。虽然WebWork设计思想先进,功能强大,但由于种种原因,市场占有率并不高,Struts 1的高市场占有率加上WebWork的精湛技术,使得两项技术的领头人走向合作,推出一个崭新的框架Struts 2。2006年,WebWork与Struts这两个优秀的Java Web框架(Web Framework)的开发团队,整合了WebWork与Struts的优点,推出了一个非常优秀的崭新的框架,就是Struts 2,而以前的Struts就称为Struts 1。S

9、truts2其实就是WebWork2.3,和Struts1并没有很大的关系,2.2 Struts 2工作流程结构,前面简要介绍了从Struts 1和WebWork到Struts 2的发展过程,下面简单介绍Struts 2的工作流程结构。Struts 2的工作流程结构图如图2.3所示。,图2.3 Struts 2的工作流程结构图,2.2 Struts 2工作流程结构,(1)客户端提交一个(HttpServletRequest)请求。(2)请求被提交到一系列(主要是3层)的过滤器(Filter),如(ActionContextCleanUp、其他过滤器(SiteMesh等)、FilterDispa

10、tcher)。注意:这里是有顺序的,先是ActionContext CleanUp,再是其他过滤器(SiteMesh等),最后到FilterDispatcher。(3)FilterDispatcher接收到请求后,询问ActionMapper是否需要调用某个Action来处理这个(HttpServletRequest)请求,如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求的处理交给 ActionProxy。(4)ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Acti

11、on类(该Action类一般是程序员自定义的处理请求的类)。(5)ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action。但在调用之前,ActionInvocation会根据配置加载Action相关的所有Interceptor(拦截器)。(6)一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。然后根据结果返回对应的视图呈现给客户端(JSP、FreeMarker等)。,2.3 Struts 2项目开发,Chap0 中“高校教学管理系统”,2.3

12、 Struts 2项目开发,1Struts 2下载Struts 2.1.8。将下载的Zip文件解压缩,它是一个典型的Web结构。打开其文件夹,里面大致包含了以下几个文件。 apps:存放基于Struts 2的示例应用,是学习Struts 2非常有用的资料。 docs:存放Struts 2的相关文档,如Struts 2的快速入门、Struts 2的文档、API文档等内容。lib:存放Struts 2框架的核心类库,以及Struts 2的第三方插件类库。src:存放Struts 2框架的全部源代码。,2.3 Struts 2项目开发,2创建项目同普通Java Web项目加载类库(.jar),2.3

13、 Struts 2项目开发,下面简要介绍这5个类库的作用。(1)struts2-core-2.1.8.jar:Struts 2的核心类库。(2)xwork-2.1.6.jar:xwork项目,Struts 2就是在此基础上构建的。(3)common-logging-1.0.4.jar:用于插入其他的日志系统。(4)freemarker-2.3.15.jar:所有的Struts 2的UI标签模板(标签会在后面详细讲解)。(5)ognl-2.7.3.jar:OGNL表达式语言(会在后面章节中详细讲解)。,2.3 Struts 2项目开发,3配置web.xmlweb.xml在建立项目时就存在了,位于

14、项目的WebRoot/WEB-INF/下,打开该文件,代码修改。其中,“”中设置项目运行时的欢迎界面,标签配置了一些xml文件的属性及引用。标签里面配置了过滤器。该内容会在后面讲解,这里先了解即可。,注意名称,2.3 Struts 2项目开发,4创建struts.xml大家在学习JSP的时候已经接触过Web项目,在Web项目的WebRoot/WEB-INF/下不但有lib文件夹,还有classes文件夹,该文件夹下存放项目编译后的类文件。一些配置文件也会放在其中,Struts 2要求struts.xml放在classes文件夹下,所以需要在该文件夹下建立struts.xml文件。由于使用Ecl

15、ipse工具,只需在项目的src下建立struts.xml文件,该文件就会被自动编译到项目的classes文件夹下,方便了编程。右击src,依次选择“New”“file”,在出现的对话框的“File name”的输入框中输入“struts.xml”,单击“finish”完成,打开该文件,输入下面的代码: . ,2.3 Struts 2项目开发,5编写LoginAction.java该Action类是用户自定义类,它完成用户想要完成的功能,比如判断用户名和密码的正确性等,这里其代码编写。可以发现,该类放在“org.action”包中,在程序中把类放到包中是一个好的习惯,这样可以把同一类型的类放在同一包中,不容易混淆,便于找到程序员要找到的类。该类是一个普通的POJO类,没有继承或实现任何的类或接口。该类中有两个属性,并生成它们的get和set方法,还有一个普通的方法,直接返回“success”。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号