网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  基于struts技术的web层应用设计和实现     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:91次  录入:管理员--2007-11-16  
 

近年来,基于mvc(model-view-controller)模型的struts框架越来越受到web系统开发者的青睐。struts是建立在当前动态网站设计领域中jsp、servlet、xml等相关开发技术基础之上的一种主流开发架构,具有组件模块化、灵活性和重用性的优点,同时极大地简化了web应用程序的开发。它合理地将用户表示逻辑、业务逻辑和控制逻辑分离,使得开发过程变得简洁清晰,并提高了软件的可维护性和可重用性。

struts框架

1、struts体系结构

struts是一种基于mvc经典设计模式的开放源代码的应用框架,也是目前web开发中比较成熟的一种框架。通过把servlet、jsp、javabean、自定义标签和信息资源整合到一个统一的框架中,为web开发提供了具有高可配置性的mvc开发模式。

struts体系结构实现了mvc设计模式的概念,它将model、view和controller分别映射到web应用中的组件。model由代表系统状态和商业逻辑action来构建,view是由jsp和struts提供的自定义标签来实现,controller负责控制流程,由actionservlet和actionmapping来完成。

2、主要组件介绍

下面我们就从分别从视图、控制、模型和struts的配置文件struts-config.xml来介绍struts的体系结构。

(1)视图:主要由jsp建立,struts自身包含了一组可扩展的自定义标签库(tag1 ib),可以简化创建用户界面的过程。

(2)模型:模型主要是表示一个系统的状态和业务逻辑。在struts中,系统的状态主要由actiomform bean体现,对于业务逻辑通常由javabean或ejb组件来实现。

(3)控制器:控制器主要由actionservlet类和action类来实现,actionservlet类是struts框架中的核心组件,主要负责接收http请求信息。根据配置文件struts-config.xml的配置信息,把请求转发合适的action对象。action类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程。

(4)配置文件struts-config.xml:当actionservlet接收http请求信息时,如何决定把用户请求转发给哪个action对象呢?这就需要一些描述用户请求路径和action映射关系的配置信息。在struts中.这些配置映射信息都存储在特定的xml 文件struts—config.xml中,在该配置文件中,每一个action的映射信息都通过一个(action)元素来配置。这些配置信息在系统启动时会被读入内存,供struts在运行期间使用,在内存中,每一个(action)元素都对应一个actionmapping类的实例。

基于struts框架bbs系统实现

bbs论坛是电子商务网站中一种常见的功能,它为上网用户提供了一个自由的讨论区。用户可以根据需要在论坛上发表文章,提出问题并表达自己的观点,俗称发帖子或灌水。与此同时,上网用户也可以在论坛中浏览其他人发表文章,并能对该文章进行回复。故一个典型的bbs系统一般应提供如下功能:①会员管理,②讨论区文章查阅,③发表新文章,④后台管理。

运用struts框架实现bbs,首先把应用分解为模型、视图和控制器来实现,这样就将业务逻辑和表现层分开,提高软件可扩展性和良好的逻辑性,改变了传统web开发设计模式。然后运用struts-config.xml配置文件将三者组装起来,协调它们完成相应的功能。下面将以bbs中用户登陆为例按照mvc架构来详述实现过程。

1、创建视图组件

在视图中主要包括两个组件:用户登录页面bbslogin.jsp,是struts的输入显示页面;登录失败页面wrong.jsp;是用户登录失败后显示的页面。它们都保存在web应用目录bbs下。

2、创建模型组件

模型组件文件userinfo.java是处理业务逻辑的javabean, 封装了与论坛用户相关的所有信息,同时也定义了所有与论坛用户信息处理相关的方法。例如检查用户身份的方法以及查找、删除、编辑、存储用户信息等。通过action类派生的子类loginaction访问userinfo.java实现对业务逻辑的处理。如果模型组建处理的业务比较复杂可以使用ejb或其他j2ee组件来实现。注意业务逻辑层对应的类所在的包应该部署在bbs/web-inf/classes下。

3、创建控制器组件

控制器组件作为整个struts架构的控制中心,包括了actionservlet、action bean、actionform bean、以及相关配置文件web.xml、struts-config.xml及资源包。actionservlet类是框架自带的,是整个struts框架的控制枢纽,通常不需要扩展。

⑴ 声明及定义loginactionform.java

该javabean用于收取用户登录页面提交的表单数据。注意actionformbean中属性名称一定要对应用户表示层jsp页面中的表单元素名称及超链接参数名。

⑵ 声明及定义loginaction.java

loginaction负责处理客户端提交请求,其主要功能是依据接收到的不同请求,通过loginactionform中得到对应的提交表单数据,调用业务逻辑层中对应的userinfo.java进行处理。最终将结果传给用户表示层jsp页面,显示在用户面前。

⑶ 配置文件定义

web.xml主要实现了对actionservlet进行配置,同时还必须声明web表示层中所使用的struts标签库。针对本应用struts-config.xml配置如下:

<form-beans>
<form-bean name="loginform" type="bbs.loginform"/>
</form-beans>
<global-forwards>
<forward name="loginsuccessed" path="/bbsmain.jsp"/>
<forward name="loginfailed" path="/wrong.jsp"/>
</global-forwards>
<action-mappings>
<action path="/login" type="bbs.loginaction" 
name="loginform" scope="session" input="/bbslogin.jsp" />
</action-mappings>

结束语

从某种意思上讲,struts技术只实现了web层的应用框架,但它是一个具有良好扩展性和不断完善的框架,结合j2ee核心设计模式,可构建出相当稳定的基于mvc应用框架,利用这样应用框架不但能缩短开发时间,还能够实现框架和代码的重用,是未来web应用开发的主流技术。

 
 
上一篇: 实例:jsp结合xml+xslt将输出转换html    下一篇: 创建web应用和struts框架配置文件实例
  相关文档
开发者:我们应该在哪个层次编写代码? 09-05
struts国际化轻松尝试 11-17
基于jndi的应用程序开发 11-16
java web services 网络服务的三个标准 11-16
跨越边界: java 模型以外的类型策略 11-17
java servlet规范2.3中的过滤器访问 11-17
浅谈java中的存储空间类型 11-17
java应用热遍全球 11-17
精通ejb【八】 11-17
初始化接口中的字段 11-17
阴阳历算法 11-17
教您最优的j2ee学习经验和流程 11-17
我的 o/r mapping 之旅(一) 11-17
离开java布局管理器 11-17
java远程方法调用(5) 11-17
j2ee基础:安装websphere服务器全攻略 11-16
jbuilderx 常见问题faq 11-17
web 服务代理组件创建 jsf web 服务客户端(3) 11-17
j2ee项目登录方式的改进设计与实现 11-17
详细的spring入门实例讲解运用 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息