ad

打开《Java+EE应用开发实践教程》_读懂新的设计思路_3.2 实验十 Struts 开发框架

admin 129 2023-10-25

【摘要】 本书摘自《Java+EE应用开发实践教程》一书中第3章,第2节,由涂祥著。

实验十 Struts 开发框架

一 、实验目的

打开《Java+EE应用开发实践教程》_读懂新的设计思路_3.2 实验十 Struts 开发框架

1.掌握 Struts 2框架概念及工作原理。

2.掌握 Struts 2编程接口和实现方法。

3.实现用户验证登录的数据库 Web 应用。

4.理解和掌握 Struts2 国际化概念和实现方法。

二、基础知识

1.Struts 2框架。

Struts 2框架是一个基于MVC 设计模式的Web 应用框架,与Sturts1 不同,Struts2 采用的是Web Work 的内核,使用拦截器机制处理用户请求,运用OGNL 表达式和 Struts2标签表达应用程序数据,同时引入注解和约定使得框架更易于使用。

2.Struts 2 工作原理。

Struts 2 的工作原理如图10-1所示。

工作流程如下。

(1)客户端通过浏览器发送基于 Http 协议的请求。

(2)Web 容器将请求传递给一系列过滤器,作简单处理后交给核心控制器 StrutsPrepareAndExecuteFilter。

(3)StrutsPrepareAndExecuteFilter 通过询问 ActionMapper 确定是否需要调用某 个Action来处理这个请求。

(4)如果 ActionMapper确定需要调用某个 Action,StrutsPrepareAndExecuteFilter 将请求的处理交给 ActionProxy。

(5)ActionProxy通过Configuration Manager 询问框架的配置文件,找到需要调用 的Action类。

(6)ActionProxy创建一个 ActionInvocation 的实例。

(7)ActionInvocation实例使用命名模式来调用,在调用 Action的过程前后,涉及相 关拦截器(Intercepter)的调用。

(8)一旦 Action执行完毕,ActionInvocation负责根据 struts.xml中的配置找到对 应的返回结果。

3.Struts2 国际化。

国际化简称 i18n,其来源于英文单词 internationalization 的首位字母,以及取中间 字母个数18作为名字。其根本作用是使得开发的软件支持多国语言环境。 Struts2整 合了Java中实现的国际化功能,以方便开发者使用。其国际化包括以下内容。

(1)JSP页面的国际化。

(2)Action的国际化。

(3)转换错误信息的国际化。

(4)校验错误信息的国际化。

三、实验步骤

1.从官网或其他网站获取Struts2开发包。

(1)访问Apache Struts官网,选择下载 Struts版本,实验中使用的是 Struts 2.5.16 版本,下载时建议选择 Full Distribution 选项,该版本包含 Struts2的核心库、源代码、文 档和实例等。

(2)将下载文件解压缩,打开解压后的文件夹,可看到 lib 文件夹,里面是所有 Struts2 的开发jar包。其中Struts2 的核心jar包如图10-2所示。

commons-fileupload-1.3.3jar

commons-io-2.5jar

commons-lang3-3.6jar

freemarker-2.3.26-incubatingjar

javassist-3.20.0-GAjar

log4j-api-2.10.0.jar

ognl-3.1.15jar

struts2-core-2.5.16jar

图 1 0 - 2 Struts2的核心 jar 包

2.新建一个 Web 工程,使用Struts2框架+DAO 模式实现 Web 登陆访问。

(1)在Eclipse中,新建一个Web 工程 p10 1。在工程中导入 Struts2 核心开发包和 MySQL 数据库驱动包,数据库连接池Druid,以及其他相关jar包,导入jar 包到 p10 1/

WebContent/WEB-INF/lib 目录下,如图10-3所示。

lib

commons-fileupload-1.3.3.jar

commons-io-2.5jar

commons-lang3-3.6jar

druid-1.1.9jar

freemarker-2.3.26-incubating.jar

javassist-3.20.0-GAjar

jstljar

log4j-api-2.10.0jar

mysql-connector-java-5.1.7-binjar

ognl-3.1.15.jar

standardjar

struts2-core-2.5.16.jar

图10 - 3 工程导入jar 包

另外导入样式文件 css/tb.css,同时在本工程的 META-INF 目录下创建 一

个context.xml文件,并参考实验九,完成连接池配置。

(2)为工程添加数据库连接类。新建 cn.hbmy.p10 1.utils 包,在包中新建数据库 连接类 DBUtil,具体代码参考实验九中 DBUtil 类。

(3)在数据库 edu db 中创建数据表 edu user。 进入命令提示符窗口,输入命令 mysql—u root -p,然后输入密码,进入 mysql命令行模式。输入命令 use edu edu;访 问数据库,最后输入如下命令创建数据表 edu user。

CREATE TABLE edu user(

userld int(6) primary key not null auto increment,

userNum varchar(9) not null,

userPwd varchar(8) not null,

userType varchar(6) not null

)default charset=utf8;

(3)根据数据表,创建Domain。 新建 cn.hbmy.p10 1.domain 包,再新建3个 pojo

类 User、Student 和 Score。User类部分代码如下所示。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:阅读《基于Python语言的软件测试技术》_打开新的知识大门_3.4.2 Halstead度量法
下一篇:阅读《基于Python语言的软件测试技术》_打开新的知识大门_4.3.5 SQA 测试目标
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×