《轻松学java web开发之struts 2框架入门》由会员分享,可在线阅读,更多相关《轻松学java web开发之struts 2框架入门(23页珍藏版)》请在金锄头文库上搜索。
1、第8章 Struts 2框架入门 Struts这个名字来源于在建筑和旧式飞机中使用的支 持金属架。它是第一个实现了Web层MVC架构的开 源框架。本章我们在简要介绍MVC模式和Struts 2框 架安装基础上,实现我们第一个HelloWorld程序的配 置与实现。8.1.1 Struts 2的由来 Struts 2是Struts的下一代产品,是在Struts和WebWork的 技术基础上进行了合并的全新的Struts 2框架,如图8.1所 示。 但是Struts 2的体系结构与Struts 1的体系结构的差别巨 大。Struts 2是以WebWork为核心的,所以Struts 2可以理 解为W
2、ebWork的更新产品。但是由于Struts 1名声较大的 缘故,所以合并之后Apache基金会将其命名为Struts 2。 Struts 2是一个基于J2EE平台的MVC框架,它主要是采用 Servlet和JSP技术来实现的。下面我们就带领大家一起来 进入Struts 2框架的世界。8.1.2 MVC模式 MVC是一种设计模式,最早是由Xerox(施乐)公司 在20世纪80年代提出的。随后,它成为了一种著名 的用户界面设计架构,如图8.2所示。8.1.2 MVC模式 MVC英文全称为Model-View-Controller,即把一个 应用程序的输入层、业务处理层、控制流程层按照 View、
3、Model、Controller的方式实现了分离,并分 别承担不同的任务。图8.3显示了这三个模块各自的 功能。8.1.2 MVC模式 MVC模式体现了分层设计的思想,它有以下几点好处: 从视图方面来说,由于多种视图可共享一个后台模型, 这就为实现多种用户界面提供了便利。 从模型方面来说,由于其实现与界面独立,因此模型只 需提供接口供上层调用,很好的体现了面向对象设计的 信息封装和隐藏的原则。 从控制器方面来说,控制器作为介于视图和后台模型间 的控制组件,可更好的维护程序流程,选择业务模型, 选择用户视图,使程序的调用规则更加清晰,很大程度 上优化了系统结构。 正是由于MVC的优势,使它成为软
4、件设计的典范,目前 大多数系统都采用了MVC模式来进行系统架构与实现。8.1.3 Java Web的实现模型 在Java Web领域存在着两种经典模型,也可以称为 实现模式,分别是Model 1和Model 2。这两种模型都 是由Sun公司提出的,它们都可被看作是MVC的具 体实现形式。现在我们就来比较一下这两种模型。 首先来看Model 1,如图8.4所示。8.1.3 Java Web的实现模型 在这种模型中,JSP充当着控制器与视图的双重角色 ,JavaBean扮演了模型的解色。JSP直接调用后台模 型进行业务处理,同时,再由JSP返回用户结果界面 ,如图8.5所示。8.1.3 Java
5、Web的实现模型 这种模型对于一些小型的程序还是可以满足的,但 对于大规模的系统就显得有些力不从心。因为倘若 将JSP既当成控制器又当成视图,那么,在页面代码 里就会有大量的HTML标记与Java语言的混合物,这 对程序的维护是非常不利的,而且对于页面开发人 员和程序设计人员的分工将造成太多约束,无法使 它们并行工作,开发效率也就被大大降低。所以Sun 公司在Model 1基础上开发出了Model 2模型,如图 8.6所示。8.1.3 Java Web的实现模型 在Model 2模型中,JSP既作为视图又作为控制器的 局面不再存在了,而是使用了Servlet作为控制器, JSP则单纯的只负责显
6、示逻辑(还包括很少量的Java 代码),如图8.7所示。 Model 2清楚的划分了表达、控制、模型这三层结构 ,很好的实现了MVC设计思想。因此,对于大型系 统的设计与开发Model 2提供了很大的帮助。8.1.4 为什么要使用Struts 2 Struts 2是目前最为成功的J2EE框架之一,在众多的MVC 框架之中脱颖而出,受到了绝大部分程序员的青睐。究 其原因,是因为Struts 2具备了其他框架无法比拟的优势 ,如图8.8所示。 Struts 2有着如此巨大的优势,相信大家一定有了跃跃欲 试的感觉,下面我们就知道大家如何在自己的计算机中 完成Struts 2的安装和配置。8.2 St
7、ruts 2的下载与安装 本节我们为大家介绍如何下载和安装Struts 2,以及 Struts 2中包含文件的作用,然后通过Struts 2自带的 实例验证Struts 2安装是否成功。8.2.1 Struts 2的下载过程 Apache官方网站提供最新版本的Struts 2下载,所以建议读者到 官方网站下载。下面将详细讲解Struts 2的下载过程。 在浏览器地址栏中输入Apache struts官方网站网址 http:/struts.apache.org/。页面更新后单击Recent Release模块中 的Struts 2.3.4版本进行下载。 注意:Struts 1与Struts 2仍
8、然在同一个网页中,没有明显区别, 下载时读者要特别注意版本号。即版本号要以2开头。 在进入的下载页面中,我们选择Full Releases版本集合进行下 载。单击Struts 2.3.4中的完全发布版(Full Distribution)struts- 2.3.4-all.zip版本完成Struts 2的下载。8.2.1 Struts 2的下载过程 下载完成后,我们得到一个zip文件,将其进行解压 ,可以看到该文件夹中包括4个目录。它们各自具有 不同的作用,如图8.11所示。8.2.2 Struts 2安装过程 首先我们在MyEclipse软件中新建一个Struts项目工程,在 Struts工
9、程的右键菜单上单击【Properties】命令,打开【 Properties for Struts2】对话框,在Struts 2解压后的lib目录 中选择如下7个文件: struts2-core-2.3.4.jar xwork-core-2.3.4.jar ognl-3.0.5.jar freemarker-2.3.19.jar commons-logging-1.1.1.jar commons-fileupload-1.2.2.jar commons-lang3-3.1.jar8.3 使用Struts 2实现第一个程序 这一节我们为大家介绍如何利用Struts 2进行Web应 用开发。首先我
10、们学习一下Struts 2的工作流程。8.3.1 Struts 2的工作流程 Struts 2与WebWork的工作方式类似,Struts 2同样使 用了拦截器作为其处理用户请求的控制器。在 Struts2中有一个核心控制器FilterDispatcher,它负责 处理用户的所有请求,如果遇到以.action结尾的请求 URL,就会交给Struts 2框架来处理。Struts 2的工作 流程我们可以用图8.14来表示。8.3.1 Struts 2的工作流程 我们还可以对图8.14的内容简化为如图8.15所示的样 式。8.3.2 开发一个Struts 2框架程序的 步骤 对应于Struts 2的
11、工作流程,我们来为大家讲解一下 开发一个Struts 2框架程序的步骤,其步骤大致如图 8.16所示。 知道了Struts 2框架程序的开发步骤,我们就可以开 始Struts 2程序的开发了,同样,我们来看看如何用 Struts 2输出最经典的“HelloWorld!”语句。8.3.3 配置web.xml Struts 2的web.xml文件配置方法非常简单,即在 web.xml中配置Struts 2提供的过滤器,并设置为所有 的请求(/*)都要通过这个过滤器,如图8.17所示。8.3.4 编写JSP界面 接下来我们编写一个页面文件。在这个例子中使用 了Struts 2标签库提供的“prope
12、rty”标签用来显示 message的属性值。8.3.5 编写Action Action类是最基本的逻辑处理单元,在MVC模式中 分发器分发给不同的Action类,来处理请求。在 Struts 2中Action类不必再实现Action接口,可以是任 何类。但是一般还要继承ActionSupport类,因为其 提供了大量的基本功能,如错误信息处理等。8.3.6 配置文件中增加映射 Struts 2的配置文件是struts.xml,所有请求和分发以 及其他配置都在这个文件中定义,struts.xml文件应 该放在WEB-INF目录下的classes文件中。如示例8.3 所示,配置了一个名称为HelloWorld的action,处理 类是struts2.HelloWorld,处理后的结果转到 helloWorld.jsp页面上。8.4 小结 本章是Struts 2的入门章节,主要介绍了Struts 2的一 些基础知识及下载安装过程。最后我们又通过一个 HelloWorld程序展示了Struts 2框架程序的开发步 骤。虽然本章内容不多,但是是后面所有Struts 2开 发框架学习的基础。读者应多加练习,熟练掌握 Struts 2程序的开发步骤和配置方法。