基于Struts框架的Web应用系统设计与实现

时间:2022-07-16 12:38:27

基于Struts框架的Web应用系统设计与实现

摘要:Struts是基于MVC模型的Web应用软件开发框架,文中阐述了struts的体系结构及主要组成组件,并以BBS系统实现为实例,讨论如何设计基于Struts框架的应用,同时也分析了使用Struts框架开发web应用的优势。

关键词:Struts;模型;视图;控制器;MVC

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2009)15-3951-02

The Design and Implement of Web Application System Based on Struts Framework

ZHANG Wei1,2, GAO Yuan1

(1.Anyang Institute of Technology, Anyang 455000, China; 2.Master in East China Normal University, Shanghai 200062, China)

Abstract: Struts is the Web-application development framework based on MVC model, the paper explain clearlythe architecture and key component parts of Struts, and take BBS systems implementation as an example to discuss how to design applications based on Struts framework, also analyzed the advantages of using the struts framework in web application development.

Key words: Struts; model; view; controller; MVC

1 引言

随着Internet技术的发展,基于MVC(Model-View-Controller)模型的Struts框架越来越受到web系统开发者的欢迎。Struts是建立在当前动态网站设计领域中JSP、Servlet、XML等相关开发技术基础之上的一种主流开发架构,具有组件模块化、灵活性和重用性的优点,同时极大地简化了Web应用程序的开发。它合理地将用户表示逻辑、业务逻辑和控制逻辑分离,使得开发过程变得简洁清晰,并提高了软件的可维护性和可重用性。

2 Struts框架

2.1 Struts体系结构

Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的java架构一样,Struts 也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层,基于如 Java Servlets,JavaBeans,ResourceBundles与XML等标准技术,以及 Jakarta Commons 的一些类库。Struts有一组相互协作的类(组件)、Serlvet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是一个传统 MVC设计模式的一种变化类型。

Struts体系结构实现了MVC设计模式的概念,它将Model、View和Controller分别映射到Web应用中的组件。Model由代表系统状态和商业逻辑Action来构建,View是由JSP和struts提供的自定义标签来实现,Controller负责控制流程,由ActionServlet和ActionMapping来完成。

2.2 主要组件介绍

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

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类的实例。

3 基于Struts框架BBS系统实现

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

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

3.1 创建视图组件

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

3.2 创建模型组件

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

3.3 创建控制器组件

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

3.3.1 声明及定义LoginActionForm.java

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

3.3.2 声明及定义LoginAction.java

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

3.3.3 配置文件定义

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>

4 结束语

在Web应用开发中,Struts技术只实现了Web层的应用框架,但它是一个具有良好扩展性和不断完善的框架,结合J2EE核心设计模式,可构建出相当稳定的基于MVC应用框架,利用这样应用框架不但能缩短开发时间,还能够实现框架和代码的重用,是未来web应用开发的主要技术方向之一。

参考文献:

[1] 周宝刚,刘杰,李成.基于Struts的WEB页面构建系统[J].电脑知识与技术,2008(4):695-698.

[2] 刘杰.Struts――基于MVC的Web开发框架[J].电脑知识与技术,2007(18):1677-1678.

[3] 赖英旭,李毛毛,刘增辉.MVC模式在B/S系统开发中的应用研究[J].微计算机信息,2006,22(30):62-64,113.

[4] 孙卫琴.精通Struts基于MVC的Web设计与开发[M].北京:电子工业出版社,2004.

上一篇:对教学资源库建设的思考 下一篇:Photoshop中精确选择图像的方法