Struts框架技术在J2EE中的应用

时间:2022-06-06 02:15:44

Struts框架技术在J2EE中的应用

摘要:该文从J2EE的概念、优势、典型的四层模型和它的框架结构等方面作了介绍。着重论述了struts框架的基本设计思想及应用。

关键词:J2EE;Struts;框架

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)08-1741-02

Application of Struts Framework Technology in J2EE

ZHAO Yun-hong

(School of Computer, Jingchu University of Technology, Jingmen 448000, China)

Abstract: The Concept, advantages, a typical four-tier model and its structure, and other aspects of the framework is introduced. Struts framework focused on the basic design concept and application of the merits of its development system.

Key words: J2EE; Struts; framework

1 绪论

用J2EE建造一个web应用程序是一件不轻松的事情。当为一个应用程序建造一个构架时有许多事情需要考虑。从高层来说,开发者需要考虑:怎样建立用户接口?在哪里处理业务逻辑?以及怎样持久化应用数据。这三层每一层都有它们各自的问题需要回答。各个层次应该使用什么技术?怎样才能把应用程序设计得松耦合和能灵活改变?构架允许层的替换不会影响到其它层吗?应用程序怎样处理容器级的服务,比如事务处理?已经有不少开发者已经遇到过这类重复发生的问题,并且建立了处理这类问题的框架。Struts就是流行的基于j2ee的架构方案之一。

2 J2EE的概述

J2EE 是Java2平台的企业版,组件是它的主要特征,通过使用多层分布式的应用模型来实现它的功能,在部署、组装、开发、和设计等方面非常简洁。J2EE通常分为下面三层:

1) 客户层,客户端的组件;

2) Web层和业务层,服务器端的组件;

3) 系统层(EIS),EIS服务器上的软件系统。

因为分布在三个不同的物理位置上,所以通常也称为客户-服务-数据库模式的三层应用。

2.1 J2EE的组件

组件是J2EE应用程序的主要构成部分。将相关的一些类和文件,以及具有某个功能模块的软件体一起封装,这就构成了J2EE的应用程序。

1) 客户端的应用程序和Applet叫客户端的组件。

2) Web组件运行在服务器上,它们实现的技术主要有Java Servlet和JSP。

3) 最后一类组件叫企业业务组件,如:JavaBean(EJB)组件,也是服务器端的。

2.2 J2EE的客户端

应用程序或者Web组件的客户端,叫做J2EE的客户端。

1) Web客户端

它有两部分组成,分为动态Web页面和浏览器。前者诸如HTML、XML等,是Web层面得东西;后者主要从服务器接受并解析或解释显示在Web页面中。

2) 小应用程序(Applet)

要运行这些小应用程序需要在客户端,安装Java虚拟机,然后才可以在Web浏览器上显示。

3) 应用程序客户端

诸如使用Swing或AWT创建的图形化的用户界面(GUI),能提供强大而灵活易用的用户界面,它们就是应用程序客户端。运行在业务层的企业Bean可直接被应用程序访问,在需求允许的情况下,对于Servlet,通过建立HTTP连接来与其通讯。

4) JavaBean组件的架构

客户端、服务器和后台数据库之间可能存在基于JavaBean的组件架构,数据的流动通过JavaBean来实现。

5) J2EE服务的通讯

J2EE客户层与服务器上运行的业务层之间需要通讯,它们之间可以是直接的,也可以通过运行在Web层中的Servlet和JSP中间件来实现,在这种情况下,客户运行在浏览器中。

2.3 Web组件

Servlet或JSP页面是J2EE的Web组件的主要形式。当然,如果将静态HTML页面和Applet一起打包成Web组件,组装在应用程序过程中,那么这就不是J2EE规范所认可的Web组件了。

2.4 业务组件

业务组件是指那些能够解决或满足特定的商业领域的一些需求的企业Bean(EJB)执行的逻辑代码,它们位于业务层。会话Bean、实体Bean和消息驱动Bean是企业Bean的三种不同类型。会话Bean,顾名思义,它代表客户一次短暂的会话过程,它的生存期很短,当客户执行完成会话后,Bean以及它所包含的会话数据也随之消失。实体Bean的生存期最长,它的数据是持久的,即使客户终止或者服务器被关闭,存储在数据库表中的一行记录在J2EE底层的会服务确保实体Bean的数据被保存下来。

2.5 企业信息系统层

处理企业信息系统的软件在企业信息系统层,企业组织结构系统就是这一层的。包括信息系统、企业资源计划(ERP)、大型的事务处理、数据库系统等。

3 Struts架构的应用

研究一下具体的应用程序,可以将它们按性质不同的组件组成分成两类:第一业务组件,它们与程序要处理的具体事务密切相关;第二类是应用服务组件。例如,一个教务管理系统和一个网站模板系统,组件的重用度是不同的,而且它们的主要差异在处理它们的业务方面,由于业务性质的不同,在不同的系统中直接处理业务的组件不太可能重用,而像标签库、错误处理、输入的校验、决定程序流向的控制等这些只与程序相关的组件,可以很好地在不同的系统中加以重用。这样就显而易见了,抽取不同程序中通用的东西,做成一个类似于模板的半成品,这就是程序框架。如果做一个新的管理系统,不必要从零开始做起,有了程序框架省事了很多。

Struts的一大优点是它是开源软件。跟Turbine、Tomcat等这些Apache项目一样,开发者可以根据代码深入了解软件的思想和作用。除此之外,Struts的另外两个优点是:页面导航和Taglib。页面导航使系统的脉络和流程更加清晰。配置文件可以把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。特别是当一个项目是多人合作时,明显地能够体现到这种优势。而Taglib翻译过来就是标记库,灵活使用可以有效的提高效率。当然,JSP本身是有标签的,若果开发者自己编写了标签那么struts的优点在这一点上就不占优势了。

很多事情都是辩证的。Taglib是Struts的优势是对于熟练的开发者来说的,而若果刚起步,它会扰乱你的习惯。为了获得更加清晰的结构,MVC的Controller被Struts一分为三,很明显,它的系统复杂度会增加不少。

4 应用 Struts框架注意问题

4.1 视情况扩展Struts框架

一个可扩展的灵活的Framework才是优秀的,Struts就是这样的框架。首先,对于用户的需求它要能够具有可预见性。Struts提供的架构对于Web 应用来说具有一定的通用性,通用性的东西便于移植。这样一来,对于开发人员可以有更多的精力关注在业务层等实际问题上。其次,开发过程中要留有足够的可扩展的接口,以便应用程序能根据需求分析的不同来改变框架以适应客户要求。

4.2 使用异常处理声明

对于应用程序的逻辑流程,一般推荐在代码之外这也是成熟的经验,主要用配置文件的方法来实现,将代码固定在程序中是不可取的,一则出问题不容易发现,二则扩展不方便。在Struts中,这是相当普遍的。从描述JMS目的地和消息到实现EJB的事务性和安全之间的关系,都是可以在程序之外定义的。这也是很多运行时的处理流程的方法。

4.3 使用应用模块(Application Modules)

Struts的一个新特性是应用模块的概念。应用模块允许将单个Struts应用划分成几个模块,每个模块有自己的Struts配置文件,JSP页面,Action等等。这个新特性是为了解决大中型的开发队伍抱怨最多的一个问题,即为了更好的支持并行开发允许多个配置文件而不是单个配置文件。

5 结束语

本文主要介绍了J2EE的Web层技术,主要特点是从模式和框架的角度去讨论建设一个面向对象的可重用的Web系统。

在真正的J2EE多层结构中,Web层只被设计成负责用户界面的显示,从Web容器的线程池实现原理也可以了解这点,线程只适合那些处理过程简单短小的功能实现。复杂的业务功能计算将通过EJB等框架实现。

通常在B/S结构下,用户界面的可重用性较低,以对象化概念来设计开发有一定的困难,但是MVC模式的提出和Struts的实现,使得开发一个可重用的面向对象的Web系统成为可能。

当然,Struts的使用对于习惯在JSP中直接写入Java代码的程序员来说是复杂了一点,一般经过多个步骤才能完成一个界面功能的开发,例如要实现ActionForm、Action和配置Strutss-config.xml、在JSP中使用taglib等。

总之,Java是复杂的,但是,Java可以由复杂变成简单。关键在于,需要针对程序员自己的开发领域设计新的应用框架,把那些复杂的东西隐藏到框架后面,这也是“磨刀不误砍柴工”的道理吧。

参考文献:

[1] 孙晓龙,赵莉.JSP动态网站技术入门与提高[M].北京:人民邮电出版社,2001.

[2] 吴其庆.J2EE程序设计实例教程[M].北京:冶金工业出版社,2006.

[3] 郝玉龙.J2EE编程技术[M].北京:清华大学出版社,北京交通大学出版社,2005.

[4] Cavaness C.Programming Jakarta Struts[M].Oreilly & Associates Ine,2004.

[5] Goodwill J.Mastering Jakarta Struts[M].Wiley Publishing Inc,2002.

上一篇:案例教学法在“面向对象程序设计”课程中的运... 下一篇:基于温度和工艺补偿的基准电流源