`
100Air
  • 浏览: 118775 次
  • 性别: Icon_minigender_1
  • 来自: 海南
社区版块
存档分类
最新评论

Struts应用程序的流程控制

阅读更多

      在为你的第一个Struts应用程序建立了部署描述符后(根据该系列第一部分所讲述的内容),你可能想知道ActionServlet实例是如何控制程序流程并采取相应的action的。这是个很好的问题,因为在一个非Struts Model 2应用程序中,你通常在控制器servlet中根据许多预定义的字符串写一系列if…else语句与一个URL匹配。一旦找到匹配的URL,控制器servlet就可以执行一个action或发送控制指令了。因为你自己不编写控制器servlet,所以你可能想知道如何去管理你的Struts应用程序的流程控制。

下面我们对此进行详细的讲述。在Struts中,每个URL模式都映射到一个叫做action object的不同的对象。而且,每个action object都是org.apache.struts.action.Action类的一个子类的实例。(这个类的最重要的方法是execute,我很快会讲到。)

Struts运用一个配置文件struts-config.xml(见列表1),缺省情况下它位于WEB-INF目录下。这个XML文件必须包含一个<action-mappings>标签,它用来将一个路径映射到一个action object。

配置文件告诉ActionServlet,如果路径等于/login(即如果URL是以“login.do”结尾的),那么就必须实例化com.javapro.struts.LoginAction对象(如果它还没有被实例化的话),而且执行它的execute方法。如果路径等于/logout,那么就调用com.javapro.struts.LogoutAction实例的execute方法,等等。

Action包含三个子类,LoginAction、LogoutAction和ViewSecretAction(见列表2、3和4)。在这三个action类中,Action类的execute方法已经被重载了。定义如下:public org.apache.struts.action.ActionForward
      execute(
  org.apache.struts.action.ActionMapping mapping,
  org.apache.struts.action.ActionForm form,
  javax.servlet.http.HttpServletRequest request,
  javax.servlet.http.HttpServletResponse response)
  throws Exception
 


注意该方法返回一个ActionForward对象,它有四个参数,其中有两个分别是ActionMapping和ActionForm对象。为了简单起见,我在这三个action类中没有用ActionForm和ActionMapping参数,而是返回空值作为替代。Struts领域的专家可能不赞成我的这种做法,但我们必须从简单的做起吧。(我将在该系列的第三部分讲述ActionForward,在第四和第五部分讲述ActionForm和ActionMapping。)

在LoginAction类中,execute方法首先从请求对象得到userName和密码。如果userName是“john”,密码是“123”,那么我们就可以成功登录了。在成功登录时,它会用一个RequestDispatcher对象把请求引导到mainMenu.jsp页面。如果登录失败,它就把请求引导到login.jsp页面。

如果用户的session对象还没有失效,那么LogoutAction类中的execute方法就会使其失效,使用户回到Login页面。

ViewSecretAction类的execute方法将用户引导到viewSecret.jsp页面。

应用程序的视图包含三个简单的JSP页面:login.jsp、mainMenu.jsp和viewSecret.jsp(见列表5、6和7)。注意,mainMenu.jsp和viewSecret.jsp在显示其内容前都会检查用户的session 对象。

完整的应用程序包含两个配置文件(web.xml和struts-config.xml)、三个视图( login.jsp、mainMenu.jsp和viewSecret.jsp)和三个action类(LoginAction、LogoutAction和ViewSecret)。

执行下面的步骤来编译.java文件:  1. 将目录改变成应用程序目录下的WEB-INF/类目录。
 2. 你需要类路径中的struts.jar和servlet.jar文件来编译。在Tomcat中,可以用下面的语句:javac -classpath
../../../../common/lib/servlet.jar;../lib/
struts.jar com/javapro/struts/*.java
 
 
 3. 重启你的Web容器来运行应用程序,将浏览器指向http://domain/myStrutsApp1/。(如果你在本地机器的8080端口上运行应用程序,运用http://localhost:8080/myStrutsapp1/。)


现在你就完成了一个简单的、可以运行的Struts应用程序了。它运用了Struts的许多类中的两个类:ActionServlet和Action。但它并没有用Struts标签库,它通过“写死”一些值以及在JSP文件中写代码使文件数量减少到最小。在本系列文章的第三部分中,我将更详细地讲述ActionServlet和Action类,并介绍ActionForward类。我还将修改现有的应用程序,运用更多的Struts类,帮助你不断取得进步,成为一名中级水平的Struts程序员。


关于作者:
 
 
Budi Kurniawan是一名IT顾问,他专门从事Internet和面向对象的编程,曾教授Java和Microsoft技术。他是销量很好的Java for the Web with Servlets, JSP, and EJB;A Developer's Guide to Scalable Solutions(new Riders)一书的作者,他还开发了最受欢迎的Java Upload Bean,你可以从BrainySoftware.com得到它,许多重要的公司都得到许可并将它用于项目中了。Budi的联系方式是budi@brainysoftware.com



分享到:
评论

相关推荐

    利用Myeclipse快速开发struts应用程序

    通过创建Web项目,配置Struts框架,设计JSP页面,编写ActionForm和Action类,以及正确配置`struts-config.xml`文件,可以高效地实现Struts应用的开发流程。这种方式有助于提高开发效率,降低出错率,是学习和实践...

    利用Myeclipse开发struts应用程序

    MyEclipse 是一个集成开发环境(IDE),它提供了对Struts框架的强大支持,包括图形化的Struts Designer工具,使得开发Struts应用程序变得更加便捷。在本教程中,我们将探讨如何使用MyEclipse来开发一个简单的Struts...

    Struts2 应用程序示例

    Struts2是一个强大的Java web应用程序框架,用于构建可维护、可扩展且结构良好的Web应用程序。这个"Struts2应用程序示例"是专为初学者和开发者设计的,它利用Eclipse 3.3作为集成开发环境,JDK 6.0作为Java运行环境...

    struts-config详解

    Struts-config详解 Struts-config.xml 是Struts框架...在struts应用程序中,struts-config.xml文件扮演着核心角色,它控制着struts应用程序的流程和逻辑。因此,了解struts-config.xml文件的配置和使用是非常重要的。

    Web服务构建Struts应用程序例程源码

    MVC 模式有好几种变异,不过它们都是基于相同的基础结构:应用程序的数据模型 (Model),显示层代码(View),以及程序控制逻辑( Controller) 是存在其中的独立但能相互间通信的组件。模型组件描述并处理应用程序...

    利用Myeclipse快速开发struts应用程序.ppt

    利用Myeclipse快速开发struts应用程序.ppt对于初学STRUTS 的人来产有很大的帮助……

    struts2小程序 struts2代码

    Struts2是一个强大的Java web应用程序框架,用于构建和管理MVC(模型-视图-控制器)架构的应用。这个“struts2小程序”很可能是开发者利用Struts2框架开发的一个小型项目,可能包含了基本的CRUD操作或其他特定功能。...

    为Web服务构建Struts应用程序例程源码

    在本文中,Jerome Josephraj 将向您展示如何构架基于分层的、正确的模型-视图-控制器(MVC)设计模式的Web 服务应用程序。为此,他修改了 Struts(一种流行的开放源码MVC 框架),以使其适用于 Web 服务领域。通过...

    三种整合 Struts 应用程序与 Spring 的方式

    本文主要介绍了三种整合Struts应用程序与Spring的方法。 首先,Spring的ActionSupport类提供了一种简单的方式将Struts动作与Spring容器集成。通过继承Spring的ActionSupport类,Struts的动作类可以直接访问由Spring...

    一个Action多方法调用的Struts 2的应用程序

    利用Struts 2框架创建一个web项目chap2_e22,实现用户登录过程。具体要求是在loginAction类中分别用login()和registered()处理用户登录和注册的过程,分别创建login.jsp和register.jsp两个页面实现登录和注册的...

    Struts 原理 与 应用

    Struts 是一个开源的Java Web框架,主要用于构建基于MVC(模型-视图-控制器)设计模式的Web应用程序。这个框架旨在提高应用的结构化和可维护性,它是在J2EE平台上发展起来的,特别是在JSP Model 2的基础上进行了...

    基于MVC设计模式的STRUTS 应用程序框架ppt版

    Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,由Apache软件基金会开发。这个框架旨在简化Web应用的开发,通过将业务逻辑、数据模型和用户界面分离,使得开发过程更加模块化和高效...

    Struts程序设计实例教程

    通过本书,读者可以学习如何设置Struts项目环境,创建第一个Struts应用,理解Struts的工作流程,编写Action类,以及使用Struts的标签库简化JSP页面的编写。同时,书中提供的实例将帮助读者巩固理论知识,提高实际...

    struts2实例小程序1

    Struts2是一个强大的Java web应用程序框架,用于构建和部署可维护、高性能的MVC(Model-View-Controller)架构的应用程序。在这个“Struts2实例小程序1”中,你将开始接触并理解Struts2的基本概念和工作流程,这对于...

    Struts2小程序源代码

    Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。这个"Struts2小程序源代码"提供了丰富的学习资源,帮助开发者深入理解Struts2的核心概念和技术。 首先,我们来看看标题...

    某纺织网(struts jsp web应用程序)

    总结来说,【某纺织网(Struts JSP Web 应用程序)】是一个综合性的Web应用,利用Struts和JSP的优势,实现了纺织行业的线上业务流程。它的设计和实现涵盖了Web应用开发的关键技术和最佳实践,对于学习和理解MVC架构...

    Struts程序的执行流程.pdf

    在了解Struts程序的执行流程之前,我们需要首先理解几个核心概念: 1. ActionServlet:是Struts框架中的控制器,负责接收用户请求,调用Action的execute()方法处理请求,并根据返回的ActionForward对象进行页面跳转...

    在Eclipse中开发struts应用程序

    配置和开发struts应用项目三.总结参考资料关于作者一.下载并安装EasyStruts包1.EasyStruts是开放源代码组织sourceforge.net上的一个项目,目前最新的版本是0.64,可以在它的网站...

Global site tag (gtag.js) - Google Analytics