06单元6基于Struts2的Web应用程序开发校.docx

上传人:b****3 文档编号:6236310 上传时间:2023-05-09 格式:DOCX 页数:16 大小:36.96KB
下载 相关 举报
06单元6基于Struts2的Web应用程序开发校.docx_第1页
第1页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第2页
第2页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第3页
第3页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第4页
第4页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第5页
第5页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第6页
第6页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第7页
第7页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第8页
第8页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第9页
第9页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第10页
第10页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第11页
第11页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第12页
第12页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第13页
第13页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第14页
第14页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第15页
第15页 / 共16页
06单元6基于Struts2的Web应用程序开发校.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

06单元6基于Struts2的Web应用程序开发校.docx

《06单元6基于Struts2的Web应用程序开发校.docx》由会员分享,可在线阅读,更多相关《06单元6基于Struts2的Web应用程序开发校.docx(16页珍藏版)》请在冰点文库上搜索。

06单元6基于Struts2的Web应用程序开发校.docx

06单元6基于Struts2的Web应用程序开发校

单元6 基于Struts2的Web应用程序开发

Struts2是Apache软件组织的一项开放源代码项目,是基于WebWork核心思想的全新框架,在JavaWeb开发领域中占有十分重要的地位。

【问题探析】

【问题1】Model2模型如何实现MVC?

Struts与MVC模式有何关系?

【问题2】Struts1框架如何运行?

Struts1怎样实现MVC模式?

【问题3】怎样理解“Struts2是基于MVC的轻量级的Web应用框架”

【问题4】Struts2和MVC有何关系,Struts2如何实现MVC模式?

【知识必备】

1.Struts简介

Struts是Apache软件基金会(ASF)赞助的一个开源项目,它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目,它通过采用JavaServlet/JSP技术实现了基于JavaEEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。

2.Struts2简介

Struts2并不是一个陌生的Web框架,它是以WebWork的设计思想为核心,吸收了Struts1的优点,可以说Struts2是Struts1和WebWork结合的产物。

3.Struts2的处理流程

Struts是一个开源框架,使用struts的目的就是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。

Struts2的简单处理流程说明如下:

(1)Web客户端的浏览器发送请求。

(2)核心处理器根据Struts.xml文件查找对应的处理请求的Action类。

(3)WebWork的拦截器链自动请求应用通用功能,例如WorkFlow、Validation等功能

(4)如果Struts.xml文件中配置了Method参数,则调用Method参数对应的Action类中的Method方法,否则调用Action的的Execute()方法来处理用户请求。

(5)将Action类中的对应方法getXXX()返回的结果响应给浏览器。

4.Action对象简介

(1)Action对象简介

Action对象是Struts2框架中的重要对象,主要用于处理HTTP请求。

在Struts2API中,Action对象是一个接口,位于com.opensymphony.xwork2包中。

(2)Action的基本流程

Struts2框架主要通过Struts2的过滤器对象拦截HTTP请求,然后将请求分配到指定的Action进行处理。

5.Struts2的拦截器

(1)拦截器概述

拦截器是AOP(面向切面编程)的一种实现方式,通过它可以在Action执行前后处理一些相应的操作。

Struts2提供了多个拦截器,开发人员也可以根据需要配置拦截器。

拦截器是Struts2框架中一个重要的核心对象,动态地作用于Action与Result之间,可以动态地增加Action及Result。

(2)Struts2API

Struts2API中有一个名为com.opensymphony.xwork2.interceptor的包,其中有一些Struts2内置的拦截器对象,它们具有不同的功能。

在这些对象中,Interceptor接口是Struts2框架中定义的拦截器对象,其他拦截器都直接或间接地实现于此接口。

(3)拦截器Interceptor中包含的方法

拦截器Interceptor中包含了3个方法,分别为init()、intercept()和destroy()。

(4)AbstractInterceptor类

AbstractInterceptor类是一个实现了Interceptor接口的抽象类,该类已经实现了Interceptor接口的init()和destroy()方法,通过继承该类创建拦截器对象时,intercept()方法必须重写,如果没有用到init()和destroy()方法,则可以不重写。

6.EL表达式语言简介

EL(ExpressionLanguage)表达式语言是JSP2.0中引入的一种计算和输出Java对象的简单语言,可以简化在JSP开发中对对象的引用,从而规范页面代码,增强程序的可读性和可维护性。

如今EL表达式是一项成熟、标准的技术,只要安装的Web服务器能够支持Servlet2.4/JSP2.0,就可以在JSP页面中直接使用EL表达式。

EL表达式语法很简单,以“${”开始,以“}”结尾,中间为合法的表达式,其语法格式如下:

${合法的表达式}

7.OGNL(对象图导航语言)简介

OGNL(Object-GraphNavigationLanguage,对象图导航语言),它是一种功能强大的表达式语言(ExpressionLanguage,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。

它使用相同的表达式去存取对象的属性,这样可以更好的取得数据。

【操作必备】

(1)下载与配置Struts2

(2)准备开发Web应用程序所需的图片文件、CSS样式文件和验证用的Javascript文件。

(3)启动Eclipse,设置工作空间为Unit06,然后进入Eclipse的开发环境。

(4)在Eclipse集成开发环境中配置与启动Tomcat服务器。

(5)新建动态Web项目,命名为task6-X,本单元有8个任务,每个任务创建一个独立的Web项目,命名分别为task6-1至task6-8。

(6)在Web项目中创建包,将其命名为“package06X”。

本单元各个Web项目中的包分别命名为package061至package068。

(7)添加Struts2的核心类包

将Struts2的类库文件拷贝到Web项目task6-X的文件夹“WebContent\WEB-INF\lib”下,并在Eclipse集成开发环境的“项目资源管理器”刷新Web项目task6-X。

由于本单元各项任务实现功能比较简单,所以只需添加Struts2的核心类包即可,所添加的类包如图6-6所示。

(8)在web.xml文件中声明Struts2提供的过滤器

【基础应用】

【任务6-1】测试Struts2框架的正确配置

【任务描述】

(1)创建JavaWeb项目task6-1,并添加Struts2的支持类库。

(2)通过Struts2的拦截器将客户端的HTTP请求转发给指定的Action处理,Action根据处理的结果返回给客户端相应的页面printInfo6-1.jsp。

【任务实施】

1.配置程序开发环境

首先新建动态Web项目task6-1,在该项目中创建包package061。

然后按照【操作必备】中介绍的方法添加Struts2的核心类包以及在web.xml文件中声明Struts2提供的过滤器。

2.创建配置文件struts.xml

在Eclipse的【项目资源管理器】中,选择节点“JavaResources”中子节点“src”,并单击鼠标右键,在弹出的快捷菜单中选择【新建】→【其他】命令,打开【新建】对话框的“选择向导”界面,在列表框中选择“XMLFile”,如图6-7所示。

单击【下一步】按钮,打开【NewXMLFile】对话框,在该对话框中选择父文件夹为“src”,在文本框中输入“struts.xml”文件名,如图6-8所示。

依次单击【下一步】按钮,以后各步都取默认设置,最后单击【完成】按钮完成配置文件struts.xml的创建。

在配置文件struts.xml中定义Action对象,其主要代码如表6-2所示。

3.新建一个Java类ActionClass6_1

在Web项目task6-1的包package061中创建名为“ActionClass6_1”的Java类。

打开ActionClass6_1.java文件,在ActionClass6_1类中编写代码定义message属性及相应的setMessage()与getMessage()方法,在该类中重写了execute()方法,代码如表6-3所示。

4.创建JSP页面printInfo6-1.jsp

在Web项目task6-1中创建名为“printInfo6-1.jsp”的JSP页面,该页面作为Action对象处理成功后的返回页面,其代码如下所示。

propertyvalue="message"/>

在JSP页面printInfo6-1.jsp中使用Struts2的标签库,首先要引入指定的标签库,在JSP代码的顶部添加以下代码:

<%@taglibprefix="s"uri="/struts-tags"%>

5.创建JSP页面task6-1.jsp

在Web项目task6-1中创建名为“task6-1.jsp”的JSP页面,在其中添加一个超链接用于访问所定义的Action对象,该链接指向的地址为test.action,其代码如下所示。

请求Struts2

Action对象的默认访问扩展名为.action,该扩展名可以更改。

6.运行程序输出结果

运行JSP页面task6-1.jsp,在显示的页面中单击【请求Struts2】超链接,请求将交给Action对象test进行处理,其处理成功后返回printInfo6-1.jsp页面,显示“配置Struts2框架成功!

”的提示信息。

【任务6-2】使用Struts2提供的动态Action实现动态操作

【任务描述】

(1)创建一个JavaWeb应用项目,应用Struts2提供的动态Action实现数据的添加、修改、删除与查询的处理请求。

(2)针对多个Action的情况,使用通配符简化配置,实现数据的添加、修改、删除与查询的处理请求。

(3)通过配置元素的method属性,在Action对象中请求指定的业务逻辑方法,实现数据的添加、修改、删除与查询的处理请求。

【任务实施】

1.配置程序开发环境

首先新建动态Web项目task6-2,在该项目中创建包package062。

然后按照【操作必备】中介绍的方法添加Struts2的核心类包以及在web.xml文件中声明Struts2提供的过滤器。

2.应用动态Action实现不同的处理请求

(1)创建配置文件struts.xml

在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个配置文件struts.xml,在配置文件struts.xml中定义Action对象action6-2,其主要代码如表6-4所示。

(2)新建一个Java类ActionClass6_2

在Web项目task6-2的包package062中创建名为“ActionClass6_2”的Java类。

打开ActionClass6_2.java文件,在ActionClass6_2类中编写代码定义message属性及相应的setMessage()与getMessage()方法,在该类中还定义了新增、修改、删除和查询数据的方法,分别为add()、update()、delete()和find(),代码如表6-5所示。

(3)创建多个JSP页面

在Web项目task6-2的文件夹“folder6-2”中创建多个作为Action对象处理成功后的返回页面,JSP页面的名称分别为“add6-2.jsp”、“update6-2.jsp”、“delete6-2.jsp”和“find6-2.jsp”,这些JSP页面的主体代码都相同,只是页面标题有区别,其代码如下所示。

propertyvalue="message"/>

(4)创建JSP页面task6-2.jsp

在Web项目task6-2中创建名为“task6-2.jsp”的JSP页面,在其中添加4个超链接用于访问所定义的Action对象,该链接分别指向ActionClass6_2类的添加、修改、删除和查询信息的请求,其代码如表6-6所示。

使用Struts2的动态Action时,其Action请求的URL地址中使用“!

”号分隔Action请与请求字符串,而请求字符串的名称要与Action类中的方法名称相对应,否则会抛出java.lang.NoSuchMethodException异常。

(5)运行程序输出结果

运行JSP页面task6-2.jsp,在显示的页面中显示“新增数据操作”、“修改数据操作”、“删除数据操作”和“查询数据操作”4个超链接,如图6-10所示。

3.使用通配符简化配置实现不同的处理请求

(1)在配置文件struts.xml中应用通配符添加配置代码

打开配置文件struts.xml,在该配置文件中使用通配符实现不同的处理请求,其主要代码如表6-7所示。

(2)新建一个Java类BookAction6_2

(3)新建一个Java类UserAction6_2

(4)创建JSP页面task6-21.jsp

在Web项目task6-2中创建名为“task6-21.jsp”的JSP页面,在其中添加8个超链接用于访问所定义的Action对象,该链接分别指向BookAction6_2和UserAction6_2类的添加、修改、删除和查询信息的请求,其代码如表6-8所示。

(5)运行程序输出结果

运行JSP页面task6-21.jsp,在显示的页面中显示8个超链接,如图6-11所示。

单击“新增图书数据操作”超链接,请求交给BookAction6_2类的add()方法处理,此时可以看到浏览器地址栏中的地址变为“http:

//localhost:

8080/task6-2/BookAction6_2!

add”。

4.通过配置元素的method属性实现不同的处理请求

(1)在配置文件struts.xml中应用通配符添加配置代码

打开配置文件struts.xml,在该配置文件中使用通配符实现不同的处理请求,其主要代码如表6-9所示。

(2)新建一个Java类ActionClass6_22

在Web项目task6-2的包package062中创建名为“ActionClass6_22”的Java类。

打开ActionClass6_22.java文件,在ActionClass6_22类中编写代码定义message属性及相应的setMessage()与getMessage()方法,在该类中还定义了新增、修改、删除和查询数据的方法,分别为add()、update()、delete()和find(),这些方法的返回值都为“SUCCESS”,代码如表6-10所示。

(3)创建JSP页面task6-22.jsp

在Web项目task6-2中创建名为“task6-22.jsp”的JSP页面,在其中添加4个超链接用于访问所定义的Action对象,该链接分别指向ActionClass6_22类的添加、修改、删除和查询信息的请求,其代码如表6-11所示。

(4)运行程序输出结果

运行JSP页面task6-22.jsp,在显示的页面中显示4个超链接,如图6-10所示。

单击“新增数据操作”超链接,请求交给ActionClass6_22类的add()方法处理,此时可以看到浏览器地址栏中的地址变为“http:

//localhost:

8080/task6-2/actionadd!

add”。

【任务6-3】使用Struts2的常用标签的实现旅游信息调查

【任务描述】

(1)创建JSP页面,使用Struts2的常用表单标签、property标签实现旅游信息调查。

(2)在Struts2框架中,将表单提交的数据自动注入到与Action对象中相对应的属性。

【任务实施】

1.配置程序开发环境

首先新建动态Web项目task6-3,在该项目中创建包package063。

然后按照【操作必备】中介绍的方法添加Struts2的核心类包以及在web.xml文件中声明Struts2提供的过滤器。

2.创建配置文件struts.xml

在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个配置文件struts.xml,在配置文件struts.xml中定义Action对象action6_3,其主要代码如表6-12所示。

3.新建一个Java类UserAction

在Web项目task6-3的包package063中创建名为“UserAction”的Java类。

打开UserAction.java文件,在UserAction类中编写代码定义多个属性及相应的setXXX()与getXXX()方法,在该类中重写了execute()方法,代码如表6-13所示。

4.创建JSP页面task6-3.jsp

在Web项目task6-3中创建名为“task6-3.jsp”的JSP页面,该页面包含多个表单标签,主要用于用户输入或选择有关自助游的数据,其代码如表6-14所示。

在JSP页面task6-3.jsp的顶部添加以下代码引入指定的标签库:

<%@taglibprefix="s"uri="/struts-tags"%>

5.创建JSP页面printInfo6-3.jsp

在Web项目task6-3中创建名为“printInfo6-3.jsp”的JSP页面,作为Action对象处理成功后的返回页面,在该页面显示用户提交的调查数据,其代码如表6-15所示。

在JSP页面printInfo6-3.jsp的顶部添加以下代码引入指定的标签库:

<%@taglibprefix="s"uri="/struts-tags"%>

6.运行程序输出结果

运行JSP页面task6-3.jsp,在显示的页面中输入姓名、理想的旅游目的地,选择性别、职业类型、常上的旅游网站,如图6-12所示。

然后单击【提交】按钮,在printInfo6-3.jsp页面显示用户提交的数据,如图6-13所示。

【任务6-4】使用Struts2创建数据验证器验证表单内容

【任务描述】

(1)Struts2的数据校验机制有两种方式,即通过配置文件和通过重写ActionSuppoert类的validate()方法,应用这两种数据验证方式对用户注册页面的用户名和密码进行验证。

(2)在Struts2框架中使用数据验证框架,其验证文件的编写有字段验证器编写风格和非字段验证器编写风格两种,应用字段验证器编写风格编写代码对注册页面中的输入的用户名进行验证,应用非字段验证器编写风格编写代码对注册页面中输入的密码进行验证。

【任务实施】

1.配置程序开发环境

首先新建动态Web项目task6-4,在该项目中创建包package064。

然后按照【操作必备】中介绍的方法添加Struts2的核心类包以及在web.xml文件中声明Struts2提供的过滤器。

2.创建配置文件struts.xml

在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个配置文件struts.xml,在配置文件struts.xml中定义2个Action对象,其主要代码如表6-16所示。

3.新建一个Java类RegisterAction1

在Web项目task6-4的包package064中创建名为“RegisterAction1”的Java类。

打开RegisterAction1.java文件,在RegisterAction1类中编写代码定义多个属性及相应的setXXX()与getXXX()方法,在该类中还重写了ActionSupport类的validate()方法,代码如表6-17所示。

4.新建一个Java类RegisterAction2

在Web项目task6-4的包package064中创建名为“RegisterAction2”的Java类。

打开RegisterAction2.java文件,在RegisterAction2类中编写代码定义多个属性及相应的setXXX()与getXXX()方法,RegisterAction2类的大部分代码与类RegisterAction1相同,如表6-17所示。

不同的是没有表6-17中第2行,也没有重写ActionSupport类的validate()方法。

5.新建一个验证文件RegisterAction2-validation.xml

在Web项目task6-4的包package064中创建名为“RegisterAction2-validation.xml”的验证文件。

打开RegisterAction2-validation.xml文件,编写如表6-18所示的代码。

6.创建JSP页面task6-41.jsp

在Web项目task6-4中创建名为“task6-41.jsp”的JSP页面,该页面包含多个表单标签,主要用于用户注册时输入用户名和密码,其代码如表6-19所示。

7.创建JSP页面task6-42.jsp

在Web项目task6-4中创建名为“task6-42.jsp”的JSP页面,该页面包含多个表单标签,主要用于用户注册时输入用户名和密码,其代码与task6-41.jsp页面的代码基本相同,但表单的action属性值设置为“register2.action”。

8.创建JSP页面welcome.jsp

在Web项目task6-4中创建名为“welcome.jsp”的JSP页面,该页面作为Action对象处理成功后的返回页面,其代码如表6-20所示。

9.运行程序输出结果

(1)运行JSP页面task6-41.jsp,在显示的用户注册页面中暂不输入用户名和密码,直接单击【提交】按钮,此时经RegisterAction1类的validate()方法校验显示相关提示信息,如图6-14所示。

图6-14 task6-41.jsp页面校验数据后显示的相关提示信息

重新输入用户名为“admin”,两次输入相同的密码,再次单击【提交】按钮,此时校验通过,打开welcome.jsp页面,在该页面中显示“输入的用户名为:

admin,通过验证!

”的信息。

(2)运行JSP页面task6-42.jsp,在用户注册页面的“用户名”文本框中输入“adm”,在“密码”文本框中“123”,在“确认密码”文本框中输入“456”,然后单击【提交】按钮,此时经RegisterAction2-validation.xml验证文件校验显示相关提示信息,如图6-15所示。

图6-15 task6-42.jsp页面校验数据后显示的相关提示信息

重新输入用户名为“admin”,两次输入相同的密码,再次单击【提交】按钮,此时校验通过,打开welcome.jsp页面,在该页面中显示“输入的用户名为:

admin,通过验证!

”的信息。

【渐进应用】

【任务6-5】使用Struts2实现用户登录功能

【任务描述】

(1)使用Struts2框架提供的表单标签创建用户登录页面。

(2)创建验证文件,对用户登录页面输入的用户名和密码进行验证。

(3)使用Struts2的处理机制将用户登录表单提交的数据自动注入到与Action对象中相应的属性,如果在登录表单中输入的用户名和密码都正确,则在JSP页面显示欢迎信息,否则返回登录表单,重新输入用户名或密码。

【任务实施】

1.配置程序开发环境

首先新

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2