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

发布时间 : 星期二 文章06单元6基于Struts2的Web应用程序开发(校)更新完毕开始阅读

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

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

【问题探析】

【问题1】Model2模型如何实现MVC?Struts与MVC模式有何关系? 【问题2】Struts 1框架如何运行?Struts 1怎样实现MVC模式?

【问题3】怎样理解“Struts 2是基于MVC的轻量级的Web应用框架” 【问题4】Struts 2和MVC有何关系,Struts 2如何实现MVC模式?

【知识必备】

1.Struts简介

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

2.Struts 2简介

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

3.Struts 2的处理流程

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

Struts 2的简单处理流程说明如下: (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对象是Struts 2框架中的重要对象,主要用于处理HTTP请求。在Struts 2 API中,Action对象是一个接口,位于com.opensymphony.xwork2包中。

(2)Action的基本流程

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

5.Struts 2的拦截器

Java Web应用程序开发任务驱动教程

(1)拦截器概述

拦截器是AOP(面向切面编程)的一种实现方式,通过它可以在Action执行前后处理一些相应的操作。Struts 2提供了多个拦截器,开发人员也可以根据需要配置拦截器。

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

(2)Struts 2 API

Struts 2 API中有一个名为com.opensymphony.xwork2.interceptor的包,其中有一些Struts 2内置的拦截器对象,它们具有不同的功能。在这些对象中,Interceptor接口是Struts 2框架中定义的拦截器对象,其他拦截器都直接或间接地实现于此接口。

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

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

AbstractInterceptor类是一个实现了Interceptor接口的抽象类,该类已经实现了

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

6.EL表达式语言简介

EL(Expression Language)表达式语言是JSP 2.0中引入的一种计算和输出Java对象的简单语言,可以简化在JSP开发中对对象的引用,从而规范页面代码,增强程序的可读性和可维护性。如今EL表达式是一项成熟、标准的技术,只要安装的Web服务器能够支持Servlet 2.4/JSP 2.0,就可以在JSP页面中直接使用EL表达式。

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

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

OGNL(Object-Graph Navigation Language,对象图导航语言),它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性,这样可以更好的取得数据。

【操作必备】

(1)下载与配置Struts 2

(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)添加Struts 2的核心类包

将Struts 2的类库文件拷贝到Web项目task6-X的文件夹“WebContent\\WEB-INF\\lib”下,并在Eclipse集成开发环境的“项目资源管理器”刷新Web项目task6-X。由于本单元各项任务实现功能比较简单,所以只需添加Struts 2的核心类包即可,所添加的类包如图6-6所示。

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

2

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

【基础应用】

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

【任务描述】

(1)创建Java Web项目task6-1,并添加Struts 2的支持类库。

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

【任务实施】

1.配置程序开发环境

首先新建动态Web项目task6-1,在该项目中创建包package061。然后按照【操作必备】中介绍的方法添加Struts 2的核心类包以及在web.xml文件中声明Struts 2提供的过滤器。

2.创建配置文件struts .xml

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

单击【下一步】按钮,打开【New XML File】对话框,在该对话框中选择父文件夹为“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对象处理成功后的返回页面,其代码如下所示。

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

<%@ taglib prefix=\5.创建JSP页面task6-1.jsp

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

3

Java Web应用程序开发任务驱动教程

Action对象的默认访问扩展名为.action,该扩展名可以更改。 6.运行程序输出结果

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

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

【任务描述】

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

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

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

【任务实施】

1.配置程序开发环境

首先新建动态Web项目task6-2,在该项目中创建包package062。然后按照【操作必备】中介绍的方法添加Struts 2的核心类包以及在web.xml文件中声明Struts 2提供的过滤器。

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页面的主体代码都相同,只是页面标题有区别,其代码如下所示。

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

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

使用Struts 2的动态Action时,其Action请求的URL地址中使用“!”号分隔Action

4

联系合同范文客服:xxxxx#qq.com(#替换为@)