↓全部展开↑
今日更新
技术新闻
精彩专题
IBM软件技术专区
最新更新
新闻专区
WebSphere
DB2
Tivoli
Lotus Notes
教程和案例
培训与认证
微软开发专区
最新更 新
VB/VC
C#&J#
.NET特 区
Web Services
XML
Windows 世界
Office
培训与认证
技术文档中心
编程语言
最新更新
JAVA
DELPHI
PowerBuilder
C/C++
VC/VB
培训与认证
开发者之家
网络通信
最新更新
专题荟萃
技术前沿
组网建网
通信天地
产品方案
网络入门
无线局域网专区
路由器专 区
Cisco认证
综合布线培训
网管员世界
网络安全
最新更新
技术专题
安全技术精粹
安全公告
产品方案
防火墙专区
IDS专区
Symantec认证
Check Point认证
网管员世界
LINUX/UNIX
最新更新
基础知识
技术开发
桌面应用
企业应用
精彩问答
开放系统世界
Red Hat认证
Turbolinux认证
SCO认证
开发者之家
软件工程与管理
最 新更新
软 件工程
软件测试
项目管理
CMM
软件工程培训
数据库开发
最新更新
SQL Server
DB2
ORACLE
PowerBuilder
MYSQL
ORACLE认证
Sybase认证
开发者之家
WEB开发
最新更新
ASP
JSP
PHP
XML/SOAP
JavaScript
HTML
CSS
企业应用与开发
最新更新
应用开发
应用分析
解决方案
成功案例
ERP专区
SCM专区
CRM专区
网络存储专区
电子政务专区
企业网建设专区
BOSS专区
企业信息化培训
移动开发
无线开发
BREW
SMARTPHONE
J2ME
SymbianOS
K-JAVA
资源中心
最新更新
在线教程
软件下载
例程源码
培训和认证
原创专栏
俞良松
王凯明
马金虎
雷年胜
陶 刚
陈立峰
曹江华
更多原创
开放系统世界
人才与培训
技术天地论坛
开发者之家
网管员世界
只谈网事
WLAN无限未来
培训与认证社区
厂商列表
IBM
Microsoft
社区推荐
·
与陌生男人激情圣诞平..
·
与陌生男人激情圣诞平..
·
脱光衣服后还可以做朋..
·
连载当我们穷得只剩下..
·
什么样的女人最喜欢做..
·
消除男人怒气的四种方..
·
“裸聊”能聊出些啥(..
·
两位大学波霸mm的爆笑..
赛迪网
>>
技术应用
>>J2SE
最新更新
|
C# & J#
|
VB/VC
|
.NET
|
Web Services
|
XML
|
Windows
|
Office
|
社区
最新更新
|
J2SE
|
DELPHI
|
PowerBuilder
|
C/C++
|
VC
|
互动社区
最新更新
|
专题荟萃
|
WLAN
|
组网建网
|
通信天地
|
路由技术
|
网络入门
|
互动社区
最新更新
|
技术专题
|
数据库及Web安全
|
病毒
|
方案
|
漏洞
|
基础入门
|
黑客攻防
|
安全动态
|
Windows
|
Linux
|
最新更新
|
基础知识
|
技术开发
|
桌面应用
|
企业应用
|
精彩问答
|
开放系统世界
|
互动社区
最新更新
|
软件工程
|
软件测试
|
项目管理
|
CMM
|
软件工程培训
最新更新
|
SQL Server
|
DB2
|
ORACLE
|
PowerBuilder
|
MYSQL
|
互动社区
最新更新
|
ASP.NET
|
J2EE
|
PHP
|
XML
|
JavaScript
|
最新更新
|
应用开发
|
技术应用
|
解决方案
|
成功案例
|
ERP专区
|
CRM专区
|
SCM专区
无线开发
|
BREW
|
SMARTPHONE
|
J2ME
|
Symbian OS
|
K-JAVA
在线教程
|
软件下载
|
例程源码
|
培训和认证
编程语言
|
网络通信
|
网络安全
|
LINUX
|
软件工程
|
数据库
|
企业应用
|
移动未来
|
资源中心
Struts应用实例:Helloapp应用
作者:孙卫琴 来源:飞思科技 发布时间:2004.11.25
本章讲解了一个简单的Struts应用例子helloapp应用,这个例子可以帮助读者迅速入门,获得开发Struts应用的基本经验。该应用的功能非常简单,接受用户输入的姓名
<name>
,然后输出
"Hello <name>"
。开发helloapp应用涉及以下内容:
分析helloapp应用的需求
在开发应用时,首先从分析需求入手,列举该应用的各种功能,以及限制条件。helloapp应用的需求非常简单,包括如下需求:
·接受用户输入的姓名
<name>
,然后返回字符串
"Hello <name> !"
·如果用户没有输入姓名就提交表单,将返回出错信息,提示用户首先输入姓名。
·如果用户输入姓名为"Monster",将返回出错信息,拒绝向"Monster"打招呼。
为了演示模型组件的功能,本应用使用模型组件来保存用户输入的姓名。
运用Struts框架
下面把Struts框架运用到helloapp应用中。Struts框架可以方便迅速的把一个复杂的应用划分成模型、视图和控制器组件,而Struts的配置文件struts-config.xml则可以灵活的组装这些组件,简化开发过程。
以下是helloapp应用的各个模块的构成:
·模型包括一个JavaBean组件PersonBean,它有一个userName属性,代表用户输入的名字。它提供了get/set方法,分别用于读取和设置userName属性,它还提供一个save()方法,负责把userName属性保存到持久化存储系统中,如数据库或文件系统。对于更为复杂的Web应用,JavaBean组件可以作为EJB或Web服务的前端组件。
·视图包括一个JSP文件hello.jsp,它提供用户界面,接受用户输入的姓名。视图还包括一个ActionForm Bean,它用来存放表单数据,并进行表单验证,如果用户没有输入姓名就提交表单,将返回出错信息。
·控制器包括一个Action类HelloAction,它完成三项任务:1.进行业务逻辑验证,如果用户输入的姓名为"Monster", 将返回错误消息;2.调用模型组件PersonBean的save()方法,保存用户输入的名字;3.决定将合适的视图组件返回给用户。
除了创建模型、视图和控制器组件,还需要创建Struts的配置文件struts-config.xml,它可以把这些组件组装起来,使它们协调工作。此外,还需要创建整个Web应用的配置文件web.xml。
创建JSP文件和ActionForm Bean
本例中,视图包括两个组件:
·一个JSP文件:hello.jsp
·一个ActionForm Bean: HelloForm Bean
下面分别讲述如何创建这两个组件。
Struts框架的数据验证功能
几乎所有和用户交互的应用都需要数据验证,而从头设计并开发完善的数据验证机制往往很费时。幸运的是,Struts框架提供了现成的、易于使用的数据验证功能。
创建控制器组件:HelloAction.java
控制器组件包括ActionServlet类和Action类。ActionServlet类是Struts框架自带的,它是整个Struts框架的控制枢纽,通常不需要扩展。Struts框架提供了可供扩展的Action类,它用来处理特定的HTTP请求,例程2-4为HelloAction类的源程序。
创建模型组件:PersonBean.java
PersonBean是一个非常简单的JavaBean,它包括一个userName属性,以及相关的get/set方法。此外,它还有一个业务方法saveToPersistentStore()。
创建存放常量的Java文件
HelloAction类和视图组件之间通过HttpServletRequest的setAttribute()和getAttribute()方法来共享request范围内的数据。下面再看一下HelloAction类调用HttpServletRequest的setAttribute()方法的细节。
创建Web应用和Struts框架的配置文件
对于Struts应用,它的配置文件web.xml应该对ActionServlet类进行配置,此外,还应该声明Web应用所使用的Struts标签库,本例中声明使用了三个标签库: Struts Bean、Struts HTML和Struts Logic标签库。
发布和运行helloapp应用
helloapp应用作为Java Web应用,它的目录结构应该符合Sun公司制定的Java Web应用的规范,此外,由于helloapp应用使用了Struts框架,因此应该把Struts框架所需的JAR文件和标签库描述文件TLD文件包含进来。
小结
本章通过简单完整的helloapp应用例子,演示了如何把Struts框架运用到Web应用的开发中。通过这个例子,读者可以掌握以下内容:
·分析应用需求,把应用分解为模型、视图和控制器来实现这些需求。
·利用Struts的标签库来创建视图组件。视图组件中的文本内容保存在专门的消息资源文件中,在JSP文件中通过Struts的bean:message标签来访问它,这样可以很方便的实现Struts应用的国际化,支持多国语言。
·Struts框架采用ActionForm Bean把视图中的表单数据传给控制器组件。ActionForm Bean被存放在request或session范围内,它能够被JSP组件、Struts标签以及Action类共享。
·数据验证分为两种类型:HTML表单验证和业务逻辑验证。表单验证由ActionForm Bean的validate()方法来实现。业务逻辑验证由Action类或模型组件来实现。
·ActionMessage可以表示数据验证错误,它被保存在ActionMessages(或其子类ActionErrors)集合对象中。ActionMessages对象被保存在request范围内,Struts的视图组件可以通过html:errors标签来访问它。
·Action类的execute()方法调用模型组件来完成业务逻辑,它还能决定把客户请求转发给哪个视图组件。
·模型组件具有封装业务实现细节的功能,开发者可以方便的把模型组件移植到远程应用服务器上,这不会对MVC的其它模块造成影响。
·通过调用HttpServletRequest或HttpSession的setAttribute()以及getAttribute()方法,可以保存或访问在request或session范围内的Java对象,从而实现视图组件和控制器组件之间信息的交互与共享。
·利用struts-config.xml文件来配置Struts应用。(T111)
本文选自飞思图书《精通Struts:基于MVC的Java Web设计与开发》
赛迪网推出“IT博客”,花不到一分钟就完成注册
【
评论
】 【
推荐
】 【
大
中
小
】 【
打印
】 【
关闭
】
·Linux专区·
·黑客攻防·
·
Nessus 3.0:开源纯真时代的终结者?
·
如何建立安全的ProFTPD应用经验谈(一)
·
Sun软件之开源不慌不忙,原因何在?
·
Linux发行版制作过程中的各个步骤(一)
·
OSDL以谨慎的态度看桌面Linux:前景乐观
·
回顾2005年的开源世界:简化易用&有保证
·
Windows2000 系统内置安全命令的威力
·
微软图形再爆严重漏洞 可导致远程攻击
·
“黑客之门”后门的魅力:感染与加载
·
从0到今:电脑病毒发展历史和常识
·
保障邮箱安全的几个不常用方法
·
MSN 8 beta软件泄露?原来是病毒假冒
·中国信息化·
·成功案例·
·
中国制造业信息化工程风云榜入围名单公布
·
“十一五”时期我国企业信息化建设趋势展望
·
3C公训:分析客户金字塔
·
王旭东:信产部将扶持培育本土跨国巨头
·
“十一五”期间 电子商务将迎来发展热潮
·
中国信息化周刊:应急联动,任重道远
·
上证所:数据从整理到深度分析
·
用友GRP工资统发解决方案在六合的成功应用
·
打造通畅的电子口岸 提供全方位服务
·
澄西船厂:ERP建设需要理想吗?
·
智邦助力额尔古纳市政府信息化
·
信息化推进云南省社保整体平台建设
*
姓 名:
更多资料
了解方案
认识厂商
*
单位名称:
详细需求信息请在此处填写!
*
联系电话:
*
电子邮件:
◆ 相关文章
◆ 站内热点推荐
·
网管员论坛
·
开发者之家
·
WLAN无限未来
·
我是如何掉进C#的……
·
中国“人件”非正式调查
合作网站:
IBM dW中国网站
LinuxAID
软件工程专家网
中国系统分析员
UMLChina
MATRIX
Mobile2008
JavaResearch
华储网
UML软件工程组织
中国JAVA手机网
JAVA中文站
金山在线
海量科技