第十三章 Struts应用详解 在本章的内容中,将主要介绍Struts的基本知识, 对Struts处理用户请求过程的各个环节进行了详 细的介绍,并且还介绍在Struts中使用Validator、 Tiles等其他框架的基本方法,通过本章内容的学 习,读者可以掌握Struts的基本知识,具备.

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
基于SSH的web开发 AND 企业级WEB应用开发新技术
J2EE Struts 和Spring 的区别.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
Oracle数据库 Oracle 子程序.
初中数学八年级下册 (苏科版) 10.4 探索三角形 相似的条件(2).
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
在PHP和MYSQL中实现完美的中文显示
Android开发入门 -----Android 开发“Ready go!” 主讲:李晓蕾
SVN的基本概念 柳峰
第六章 窗口系统和用户界面管理系统 山东大学计算机学院.
Struts开发技术.
第二讲 搭建Java Web开发环境 主讲人:孙娜
面向对象建模技术 软件工程系 林 琳.
大学计算机基础 典型案例之一 构建FPT服务器.
SVN服务器的搭建(Windows) 柳峰
辅导课程六.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Windows网络操作系统管理 ——Windows Server 2008 R2.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
第17章 网站发布.
PaPaPa项目架构 By:Listen 我在这.
Windows 7 的系统设置.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
DevDays ’99 The aim of this mission is knowledge..
任务1-3 使用Dreamweaver创建ASP网页
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
三:基于Eclipse的集成开发环境搭建与使用
UI 软件 设计 页面布局(三).
SOA – Experiment 2: Query Classification Web Service
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
第十七章 Struts+Spring+Hibernate构建电子商务系统
Web安全基础教程
第四章 团队音乐会序幕: 团队协作平台的快速创建
Drupal Dev 我想知道:什么时候、什么变化.
Java Server Faces 参考书籍 Java Server Faces 核心编程.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
商业分析平台-语义元数据 用友集团技术中心 边传猛 2013年 11月 06日.
姚金宇 MIT SCHEME 使用说明 姚金宇
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
项目二:HTML语言基础.
Web安全基础教程
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
本节内容 结构体 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第十四章 Spring应用详解 在本章的内容中,首先介绍Spring核心技术控制 反转和面向切面编程的基本知识,在Web方面,详 细介绍了如何使用Spring实现MVC,然后对Spring 中的数据库操作进行简单的介绍,在本章的最后, 展示了如何在Spring中进行事务处理,通过本章 内容的学习,读者可以从整体上了解Spring的基.
Chapter 18 使用GRASP的对象设计示例.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
HSC高速输出例程 HORNER APG.
WEB321 使用ASP.NET2.0快速开发电子商务网站
OpenStack vs CloudStack
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Python 环境搭建 基于Anaconda和VSCode.
本节内容 结构体.
第二章 Java开发环境及开发工具 本章主要介绍Java开发环境的搭建,首先介绍JDK 的下载安装和环境变量的设置,并通过一个简单 的示例程序展示JDK的简单使用方法,对于Java开 发工具方面,简单介绍集成开发环境Eclipse的基 本使用方法,通过本章的学习,读者可以迅速掌 握Java开发环境的搭建,并对Eclipse开发工具的.
实施前的工作 CJEA : Holen
基于列存储的RDF数据管理 朱敏
唯美 中国风.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
----以《西北民族音乐学术资源数据库》为例 西安音乐学院 景 月 亲
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第21章 Spring 的MVC框架 Spring不但一个很好的集成框剪,它还提供了构建Web应用程序的全功能MVC模块。Spring 的MVC框架非常强大并不逊色于其他专业的Web框架,如Struts、WebWork。但在国内Spring MVC应用的并不是特别多,原因可能是Struts太深入人心的缘故吧。
FPGA系统设计与实践 本章小结(第5章).
多个Activity的使用 本讲大纲: 1、使用Bundle在Activity之间交换数据 2、调用另一个Activity并返回结果
Presentation transcript:

第十三章 Struts应用详解 在本章的内容中,将主要介绍Struts的基本知识, 对Struts处理用户请求过程的各个环节进行了详 细的介绍,并且还介绍在Struts中使用Validator、 Tiles等其他框架的基本方法,通过本章内容的学 习,读者可以掌握Struts的基本知识,具备 Struts开发的基本技能。

13.1 Struts基础知识 随着Web开发技术的日益成熟,在Web开发领域中 出现了许多软件开发框架,Struts就是一种基于 MVC经典设计模式的框架,也是目前Web开发中比 较成熟的一种开发框架,要使用Struts框架,首 先需要了解Struts的工作原理,在本节的内容中, 将简单介绍Strut框架的工作原理,并且对Struts 开发环境的配置方法做简单的说明

13.1.1 Struts 的工作原理 Struts是对JSP Model2设计标准的一种实现,下 面分别场区那个模型(Model)、视图(View)和 控制器(Controller)三个部分介绍Struts的体 系结构和工作原理,在一般情况下,Struts框架 中的模型是由JavaBean或者EJB构成,视图是有 JSP页面组成,控制器是由ActionServlet和 Action实现。(具体内容请参照书。)

13.1.2 Struts的工作流程 ActionServlet是Struts中核心的控制器,所有的 用户请求都必须通过ActionServlet的处理,而 struts-config.xml是Struts中核心的配置文件, 在这个文件中配置了用户请求URL和控制器Action 的映射关系,ActionServlet就是通过这个配置文 件把用户请求发送到对应的控制器中。

13.1.3 Struts的基本配置 在开发Struts应用程序的时候,需要对开发环境 进行简单的配置,其中需要把Struts的类库放到 项目WEB-INF/lib文件夹下,而且要把Strut的TLD 标签库表述文件放到WEB-INF目录下,然后还需要 在web.xml中配置ActionServlet这个控制器,从 而保证所有的用户请求都能被Struts框架接收并 处理。

13.2 简单Struts应用示例 在本节内容中,将展示一个简单的Struts应用程 序,在这个示例程序中,需要向服务器提交一个 简单的表单,服务器接收这个表单以后,把处理 的结果返回给用户。整个业务逻辑的处理非常简 单,这个示例程序的目的也就是向读者展示 Struts处理用户请求的具体流程,通过这个示例 程序需要读者了解的是如何使用Struts处理用户 请求,接下来介绍这个示例程序的具体开发过程。 在开发这个示例程序的时候,一般情况下需要以 下几个步骤。(具体内容请参照书。)

13.2.1 创建JSP页面 下面创建向用户提供表单输入的JSP页面,在这个 JSP页面中,仅仅包含了一个简单的文本输入域, 用来接收用户的输入,(具体内容请参照书。)

13.2.2 创建ActionForm 在上节内容中,创建了一个简单的JSP页面,在这 个JSP页面中提供了一个简答的用户输入表单,在 Struts中,需要为每一个用户输入表单提供一个 ActionForm对象,当用户提交表单的时候, Struts会自动把用户提交的表单信息保存在对应 的AcionForm中,在这个示例程序中,用户提交的 表单仅有一条输入信息,(具体内容请参照书。)

13.2.3 创建Action Struts中使用Action处理用户的请求,在这个示 例程序中,可以使用下面的Action来处理用户提 交的表单信息。

13.2.4 创建JavaBean模型组件 在上面的Action中,调用了一个JavaBean,在这 里仅仅是为了模拟在Action调用JavaBean模型组 件完成业务逻辑处理的方法,在这个JavaBean中 并没有提供具体的业务逻辑,仅仅是展示使用, 这个JavaBean的具体代码如下。(具体内容请参 照书。)

13.2.5 资源文件 在这个示例程序的JSP页面中,多次用到Struts中 的资源文件,在本质上这个资源文件就是简单的 属性文件,通过名值对应提供具体的配置内容, 下面就是在这个示例程序中用到的资源文件。 (具体内容请参照书。)

13.2.6 基本配置信息 struts-config.xml是Struts配置文件中的核心配 置文件,在这个配置文件中可以配置用户请求URL 和控制器Action之间的映射信息,ActionServlet 就是通过这个配置文件中完成用户请求的转发工 作,下面就是这个示例程序中struts-config.xml 配置文件的具体内容。(具体内容请参照书。)

13.2.7 运行结果 (具体内容请参照书。)

13.3 Struts中的表单处理器ActionForm 在Web应用程序的开发过程中,开发人员需要花费 大量的时间和精力处理表单问题,有的时候是通 过表单提交一些新的数据,有的是通过表单修改 数据,所有这些表单的处理在传统的Web开发中都 是非常复杂的。在本节中将介绍Struts中的表单 处理组件ActionForm。

13.3.1 ActionForm简介 在传统的Web应用程序开发中,繁杂的表单处理工 作给开发人员带来了巨大的困难,在传统的Web开 发语言中,没有组件可以自动收集用户输入的表 单内容,开发人员不得不在程序中手工提取表单 的值。例如在表单中有这样一个文本输入域。 <input type=”text” name=”password”>(具 体内容请参照书。)

13.3.2 ActionForm基本功能 ActionForm不仅实现了表单字段保存的功能,而 且还提供了数据缓冲、数据验证的功能。 在传统的Web开发中,验证用户提交的表单数据可 以采取两种方法,一种是在表单提交到服务器后, 在服务器端使用JavaBean来进行验证,在这种验 证方法中,如果数据验证失败以后,需要返回原 来的页面,但是用户提交的所有表单数据已经被 刷新,除非采用特殊的程序处理,否则用户得到 的会是一个全新的表单,前面输入的任何数据都 没有了。

13.4 Struts中的控制器 Action是Struts中的主要控制器,在本节的内容 中,将介绍Action的工作原理和基本使用方法, 同时对DispatchAction和LookupDispatchAction 这两个控制器的使用方法进行简单的介绍,并通 过两个示例程序展示这两个控制器的基本使用方 法。

13.4.1 Action简介 在Struts中,所有的用户请求都会经过 ActionServlet的处理,而实际的工作是交给 Action对象来处理的,ActionServlet可以从配置 文件中创建ActionMapping对象,并从 ActionMapping对象中可以找到要使用的Action, 然后将用户的请求转交给Action。

13.4.2 Action的基本使用方法 在开发Action的时候,需要继承 org.apache.struts.action.Action这个类,在子 类中加入所需的业务逻辑处理,这些子类会返回 ActionForward对象,ActionServlet接受这个对 象,把页面转发到指定页面,从而把用户请求的 结果发送到对应页面。(具体内容请参照书。)

13.4.3 DispatchAction的使用方法 在前面的介绍中,为每一个动作提供一个Action 类,但是在很多时候,一些相似的动作是可以在 统一个模块中进行处理的,但是在Struts的 Action类中,只提供一个execute()方法,一个 用户请求URL只能对应一个Servlet,在Struts中 提供了另一个控制器类 org.apache.struts.actions.DispatchAction, 这个类可以将完成相关业务逻辑所需要的方法集 中在一个DispatchAction类中,在继承 DispatchAction类之后,不是重写execute()方 法,而是编写自己需要的方法,在不同的方法中 处理不同的动作

13.4.4 LookupDispatchAction的使用方法 在DispatchAction中可以在同一个控制器中处理 多个动作,这个时候只能是通过URL调用控制器, 控制器根据用户提交的参数决定调用哪个方法来 处理用户的请求。这种情况下不能通过表单提交 用户的请求信息。(具体内容请参照书。)

13.5 Struts中的页面转发控制 Struts提供了ActionForward和ActionMapping这 两个类用来控制页面转发,在本节内容中将简单 介绍这两个类的基本使用方法。

13.5.1 ActionForward简介 在使用Struts开发的Web应用程序中,Action在完 成用户逻辑处理以后,需要把处理结果展示给用 户,这个时候就需要程序控制页面的转发,在 Struts中使用ActionForward对象控制程序的转向, ActionForward对象是一种配置对象,代表了一般 的Web资源,可以是JSP页面、Servlet以及其他 Action,ActionForward对象映射的是Struts配置 文件struts-config.xml中的<forward>元素,在 这个元素中封装了目标页面的URI。

13.5.2 使用ActionForward传递参数 ActionForward不仅承担着控制程序转发的任务, 而且还可以在转发页面的时候同时传递参数,在 ActionForward中,可以在struts-config.xml定 义<forward>元素的时候指定参数以及内容。也可 以在程序中动态添加参数。下面将介绍 ActionForward传递参数的更多用法。

13.5.3 ActionMapping简介 在struts-config.xml配置文件中,每一个 <action>元素都对应一个ActionMapping对象,当 用户请求被ActionServlet接收以后, ActionServlet会根据用户请求URL以及<action> 元素设定的path属性确定对应的ActionMapping对 象,ActionMapping对象会告诉ActionServlet使 用哪个Action对象处理用户请求。

13.6 Struts标签库 为了方便开发人员使用Struts开发Web应用系统, 在Struts框架中提供了内置的标签库,使用这些 标签库可以方便构造表示层的JSP页面。在前面章 节中介绍的示例程序中,已经使用到一部分 Struts标签,虽然目前很大一部分的Web程序仍然 采用传统的HTML标记来实现表示层的页面,但是 在Struts应用的开发过程中,Struts标签的使用 还是不可避免的,在本章的接下来的内容中,将 简单介绍Struts中常用的基本标签库。

13.6.1 html标签 HTML标签是Struts标签中基本的标签。Struts框 架的HTML标签库中提供了对应普通HTML页面中的 标签元素。接下来介绍Struts标签中的常用的标 签。(具体内容请参照书。)

13.6.2 bean标签 Struts的bean标签库用来在JSP页面中处理 JavaBean,不仅可以访问已经存在的JavaBean, 而且还可以定义新的JavaBean。接下来介绍bean 标签库中常用的标签。

13.6.3 logic标签 在传统的处理方式中,是用脚本控制页面中的逻 辑,在Struts中提供logic标签库控制页面的基本 逻辑处理。接下来介绍logic标签库中常用的标签 (具体内容请参照书。)

13.7 在Struts中使用Validator验证框架 在使用ActionForm时,可以把验证用户表单输入 的工作放在ActionForm的vailidate()方法中, 在Struts中,可以整合Validator验证框架进行表 单的输入验证工作。在接下来的内容中,将介绍 Struts中使用Validator验证框架的基本方法。

13.7.1 Validator验证框架的配置 在前面章节中使用MyEclipse配置Struts开发环境 的时候,已经默认把Validator框架的类库文件拷 贝到项目的WEB-INF/lib中,而且还把Validator 框架需要的validator-rules.xml文件拷贝到WEB- INF目录中。同时如果要使用Validator,还需要 在WEB-INF目录下添加Validator验证规则文件, 在这里我们需要在WEB-INF目录下添加一个 validation.xml文件。(具体内容请参照书。)

13.7.2 Validator的内置验证器 在Validator框架中内置了一些验证器,例如非空 验证、Email验证、整型数据验证、最大长度验证、 最小长度验证等,这些验证方法都是Validator框 架中内置的,可以调用这些验证器对用户提交的 表单进行验证。下面将简单介绍这几种内置验证 器的基本使用方法。

13.7.3 Validator验证框架的简单示例 在下面的示例程序中,展示了Validator中内置的 几个验证器的基本使用方法,下面就是这个示例 程序中的JSP页面,在这个页面中提供了一个简单 的用户注册表单,在这个示例程序中将对用户输 入的表单信息进行验证,(具体内容请参照书。)

13.8 在Struts中使用Tiles Tiles提供一个类似桌面应用程序版面管理的机制, 通过配置文件可以定义版面配置,以及其中需要 插入的内容网页,在Tiles中内容网页可以和配置 文件相分离,通过使用Tiles可以随时更换内容网 页,从而可以重用版面配置文件。在下面的内容 中,将介绍在Struts中使用Tiles框架的基本方法。

13.8.1 在Struts中配置Tiles框架 在Struts中使用Tiles框架的方法是非常方便的。 在前面使用MyEclipse配置Struts开发环境的时候, 已经自动吧Tiles需要用到的标签库描述文件 struts-tiles.tld拷贝在项目的WEB-INF目录下, 现在还需要在WEB-INF目录下添加一个tiles- defns.xml文件,在这个文件中描述了Tiles框架 的配置信息。

13.8.2 创建模版页面 在下面的示例程序中,将展示Tiles模版的基本使 用方法,在使用Tiles框架的时候,首先需要创建 Tiles模版,然后在需要使用这个模版的时候,直 接调用即可。(具体内容请参照书。)

13.8.3 使用模版页面 在上一章节中,创建了个名为mainlayout的页面 布局,定义好这个布局以后,就可以在后就可以 在程序中使用这个布局,在这个布局中,已经指 定了header和footer的内容,在使用这个布局的 时候,只需要添加网页中间部分的主体内容即可。 (具体内容请参照书。)

13.9 小结 在本章内容中,介绍了Struts的基本知识,在目 前的Web开发中,Struts已经成了MVC事实上的标 准大量的Web程序使用Struts进行开发,所以读者 有必要掌握这项基本的技术,本章中不仅介绍了 Struts的基本工作原理、基本使用方法,而且还 介绍了在Struts中如何整合第三方的框架,另外, 在本章的内容中,对于比较复杂的知识点都提供 了具体的示例展示,读者可以通过这些示例程序 深入了解对应的知识点,并逐步在自己的项目中 学习使用。