现在的位置: 首页 > 综合 > 正文

Struts原理、开发及项目实施

2013年06月05日 ⁄ 综合 ⁄ 共 4479字 ⁄ 字号 评论关闭

摘要

2、 
关键词

3、 
Framework

4、 
Struts
的起源

5、 
Struts
工作原理

6、 
Struts
安装

7、 
一个实例

8、 
Struts
优缺点

9、 
Struts
项目实施经验

10、             
总结

11、             
参考文献

 

1、 
摘要

 

本文主要讲述了Struts(以Struts1.0.2为例)的工作原理,安装以及配置方面的问题。然后结合一个实例,详细讨论了Struts在实际开发过程中的应用,最后提供一些在开发过程中积累的经验,供大家参考。

 

2、关键词

 

StrutsMVCJ2EETilesFramework

 

3Framework

 

Framework即架构(框架),这里指软件的架构方式,为什么要提Framework呢?请允许我从J2EE讲起。

      
J2EE
体系包括JSPServletEJBWEB
SERVICE
等多项技术。这些技术的出现给电子商务时代的WEB应用开发提供了一个非常有竞争力的选择。怎样把这些技术组合起来,形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。

      
此步骤一般主要由架构设计师完成,设计师将根据项目需求,对J2EE体系中的各处技术进行筛选取舍,并考虑到开发过程中的角色分工、后期的运行维护,以及系统扩展性等诸多因素,建立系统的架构。

      
一个成功的软件需要有一个成功的架构,但软件架构的建立是一个复杂而又持续改进的过程,软件开发者们不可能对每个不同的项目做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案,Struts就是其中之一,Struts是流行的基于J2EE的架构方案,其他常用的基于J2EE的架构方案还有TurbineRealMothods等。

 

4Struts的起源

 

      
Struts
最早是作为Apache Jakarta项目的组成部分问世运做。项目的创立者希望通过对该项目的研究,改进和提高Java
Server Pages (JSPs)
Servlet、标签库以及面向对象的技术水准。当前最高发行版本为Struts1.0.2,可以到http://jakata.apache.org/Struts下载。

      
Struts
这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了帮助你减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用ServletsJSP的优点来建立可扩展的应用,Struts是一个不错的选择。

 

5Struts工作原理

 

      
MVC
Model-View-Controller的缩写,是一种常用的设计模式。MVC
减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。MVC的工作原理,如下图1所示:

 

 

View(视图)

 

Controller(控制)

 

Model(模型)

 

1

 

      
Struts
MVC的一种实现,它将 Servlet
JSP
标记(属于 J2EE
规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的工作原理,如下图2所示:

      

Client

 

IE or Netscape

Controller

 

ActionServlet

Business Logic

 

Action

Model

 

JavaBean or EJB

View

 

JSP

HTTP

Request

 

Action Form

 

HTTP

Response

 

Struts-config.xml

2

 

      
控制:通过图2大家可以看到有一个XML文件Struts-config.xml,与之相关联的是Controller,在Struts中,承担MVCController角色的是一个Servlet,叫ActionServletActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到StrutsHTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充
Action From
(通常称之为FromBean,并传给动作类(通常称之为ActionBean)。动作类实现核心商业逻辑,它可以访问java
bean
或调用EJB。最后动作类把控制权传给后续的JSP
文件,后者生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。

      
视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP
标签库: HtmlBeanLogicTemplate等,这有利于分开表现逻辑和程序逻辑。

      
模型:模型以一个或多个java bean的形式存在。这些bean分为三类:Action
Form
ActionJavaBean or EJBAction
Form
通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java
Bean
EJB等。

      
流程:Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevletActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。

 

 

      
核心:Struts的核心是ActionSevletActionSevlet的核心是Struts-config.xml。这在后面还会详细讨论。

 

6Struts安装

 

      
Struts
的安装比较简单,下面的以Tomcat 4.0.4为例,讲述安装过程。

      
首先请到http://jakarta.apache.org/Struts下载Struts,建议使用release版,现在最高版本为1.0.2,下载后得到的是一个ZIP文件。

      
ZIP包解开,可以看到这个目录:libwebappswebapps下有一些WAR文件。

      
假设你的Tomcat装在c:/Tomcat下,则将那些WAR文件拷贝到C:/Tomcat/webapps,重新启动Tomcat即可。

      
打开浏览器,在地址栏中输入:http://localhost:8080/Struts-example/index.jsp,若能见到“powered
by Struts
”的深蓝色图标,即说明成功了。这是Struts自带的一个例子,附有详细的说明文档,可以做为初学者的入门教程。

      
另外,Struts还提供了一系统实用对象:XML处理、通过Java
reflection APIs
自动处理JavaBeans属性、国际化的提示和消息等。

 

 

7、一个实例

 

 

      
一个用户注册系统,用户通过网页输入相关信息:注册ID号,密码,EMAIL,若注册成功,则返回成功提示信息,反之出现注册失败提示信息。

      
以下是相关文件的部分核心代码。

 

      
项目建立:

 

正式开发前,需要在Tocmat(我的tomcat装在c:/tomcat)中建立此项目。

比较快的一种建立方式为:

C:/tomcat/webapps下新建目录test,再将C:/tomcat/webapps/struts-example下的

WEB-INF目录拷贝到test目录下,然后将test/WEB-INF下的srcclasses目录清空,以及struts-config.xml文件中内容清空即可。这样,我们需要的Struts类包及相关的配置文件就都齐了。

      
开发时,将JSP文件放在test目录下,Java原文件放在test/WEB-INF/src下,编译后的类文件放在test/WEB-INF/classes下。

 

      
注册页面:reguser.jsp

      

      
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

 

<%@ taglib uri="/WEB-INF/Struts-bean.tld" prefix="bean" %>

 

<%@ taglib uri="/WEB-INF/Struts-html.tld" prefix="html" %>

 

<html:html locale="true">

 

<head>

 

<title>RegUser</title>

 

<html:base/>

 

</head>

 

<body bgcolor="white">

 

<html:errors/>

 

<html:form action="/regUserAction" focus="logname">

 

<table border="0" width="100%">

 

 
<tr>

 

   
<th align="right">

 

     
Logname:

 

   
</th>

 

   
<td align="left">

 

     
<html:text property="logname" size="20" maxlength="20"/>

 

   
</td>

 

 
</tr>

 

 
<tr>

 

   
<th align="right">

 

     
Password:

 

   
</th>

 

   
<td align="left">

 

     
<html:password property="password" size="20" maxlength="20"/>

 

   
</td>

 

 
</tr>

 

 
<tr>

 

   
<th align="right">

 

   
  E-mail:

 

   
</th>

 

   
<td align="left">

 

     
<html:password property="email" size="30" maxlength="50"/>

 

   
</td>

 

 
</tr>

 

 
<tr>

 

   
<td align="right">

 

     
<html:submit property="submit" value="Submit"/>

 

   
</td>

 

   
<td align="left">

 

     
<html:reset/>

 

   
</td>

 

 
</tr>

 

</table>

 

</html:form>

 

</body>

 

</html:html>

 

 

JSP页面不同于普通的JSP页,因为它大量运用了taglib,这些

抱歉!评论已关闭.