`
yp307567950
  • 浏览: 104602 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts1

阅读更多

-------------------------------------------------------------------------------------------------------------------------------------

Struts简介:由apache提供的一个基于MVC的开源框架,与SUN公司无关,非J2EE规范。

-------------------------------------------------------------------------------------------------------------------------------------

使用目的:利用Struts可以构造我们整个软件系统的框架,可以将系统划分为三个核心的模块:

1.Model(模型层)

JavaBean:处理业务逻辑的--->业务逻辑层

                  处理数据访问逻辑的--->数据访问层

EJB:(SessionBean)

AtionForm:

2.View(示图层):Jsp;Html

3.Controller(控制层):

ActionServlet(控制器)

Actions(控制器)

RequestProcessor(请求处理器)

View和Controller属于表现层(Web层);

------------------------------------------------------------------------------------------------------------------------------------

Struts的优缺点:

有点:1.快速构建软件系统的框架结构,提高开发效率。

         2.可以提高系统的可重用性,扩展性和可维护性。

         3.比较适合于开发一些比较大型的项目。

缺点:1.Struts框架的运作机制相当复杂,不易理解。

         2.用户开发的程序和框架绑定在一起,脱离框架就无法正常运行。

-----------------------------------------------------------------------------------------------------------------------------------

Struts中控制层的分类:

1.ActionServlet:这个类由Struts框架提供,它专门负责接受所有客户端的请求(*.do),但是它本身不会去处理请求,而是将请求交给RequestProcessor全权处理。

2.RequestProcessor:这个类也是由Struts框架提供,它接受ActionServlet转发过来的请求(request)并进行处理,它会根据struts-config.xml中的配置文件去调用不同的Action去处理客户端不同的请求。

3.Action:这个类也是由Struts框架提供,我们用户只要定义一个类继承Action即可。Action(功能是控制和转发请求)类似于Servlet,作为控制器去调用模型层中的业务接口方法,根据不同的返回结果不同的视图去展示数据。

------------------------------------------------------------------------------------------------------------------------------------

Struts模型层中的ActionForm

ActionForm 也是由Struts框架提供,只要定义一个类继承它即可。

使用目的:1.用于封装表单的字段信息;2.验证提交表单中的字段信息;3.可以对表单中的字段信息重新赋值显示。

一个Action可以配置一个ActionForm,也可以不配置。一个ActionForm可以被多个Action使用。

------------------------------------------------------------------------------------------------------------------------------------

Struts的工作流程

1.容器在装载并实例化ActionServlet实例对象后,在初始化方法init()中先去解析struts-config.xml文件,将其中的每个元素封装成struts框架中对应的一个个类的对象。如:

<form-bean>---->ActionFormBean对象

<action>----->ActionMapping

<forward>---->ActionForward

那么这些对象存放进ModuleConfigImpl维护的若干个HashMap中。

formBeans:(name,ActionFormBean对象引用);

actionConfigs:(path,ActionMappings对象引用)

放置全局的ActionForward对象

forwards(name,ActionForward对象引用)

例如:actionConfigs("/basic/register",ActionMapping对象引用);

2.不管表单时get还是post方法提交,ActionServlet对象调用process(request,response)方法,在该方法中构造一个RequestProcessor类的对象,若后调用它的方法process(request,response);并将request和response传递给该方法,接下来由RequestProcessor对象全权处理请求。

3.RequestProcessor对象根据请求URL中的ServletPath,到HashMap中查找对应的ActionMapping对象,若没有找到则直接返回404.

4.若找到ActionMapping对象,根据属性name的值找到相应的ActionForm,如果没有配置formBean,跳转到8.

5.判断是否存在ActionForm对象,根据scope.getAttribute(属性名)(属性名的值就是attribute指定的值)来查找对应的ActionForm对象,若没有,构造一个新的ActionForm对象,然后放置在scope指定的范围中。

6.调用ActionForm对象的reset()方法进行属性的初始化,再将表单字段封装到该对象的属性中,该方法要用户自己实现。

7.若validate为true,执行ActionForm对象中的validate()方法,若为false,不执行。

8.判断Action对象是否存在,从Action缓存中去查找对应的Action对象(其实就是一个HashMap对象,属性type指定的值,action对象引用)。若没有构造一个新的Action对象放置到该集合中。

9.Action对象调用execute()方法,返回一个ActionForward对象到struts-config.xml中。RequestProcessor对象,根据其中的属性信息forward或者重定向到path指定的资源。

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    struts1和struts2的区别

    ### Struts1与Struts2的主要区别 #### 概述 Apache Struts 是一个用于构建企业级Java Web应用的开源框架。它分为两个版本:Struts1 和 Struts2。虽然两者都基于模型-视图-控制器(MVC)设计模式,但它们之间存在...

    struts2.0整合Struts 1

    Struts 2整合Struts 1,允许开发者利用Struts 1已有的投资,同时享受Struts 2带来的优势,如增强的类型安全和更强大的拦截器机制。 在《Struts 2权威指南--基于WebWork核心的MVC开发》这本书中,作者李纲深入浅出地...

    Struts1和Struts2区别

    Struts1和Struts2是两个非常著名的Java Web框架,它们都由Apache软件基金会开发,用于构建MVC(Model-View-Controller)架构的应用程序。虽然它们在目标上相似,但在设计模式、功能特性和使用体验上存在显著差异。...

    struts1和struts2的jar包

    Struts1和Struts2是两个不同的版本,它们各自拥有独特的特性和功能,但在Java Web开发领域都扮演了重要角色。 **Struts1** Struts1是最早的版本,它在2001年发布,是基于ApacheJakarta项目的一个框架。Struts1的...

    struts1教程.doc

    Struts 1.x 是一款基于模型-视图-控制器(MVC)设计模式的Java Web框架,它在早期的Web应用程序开发中占据了重要的地位。本教程主要针对初学者,旨在引导学习者掌握Struts 1.x的基础知识和使用方法。 在开始学习...

    saif(struts1 interceptor)

    Struts1是一个经典的Java Web框架,它为开发者提供了一种结构化的MVC(Model-View-Controller)设计模式实现方式。然而,在Struts1的原生设计中,并没有内置拦截器(Interceptor)这一概念,这与后来的Struts2框架...

    Struts1实验项目

    Struts1是一个经典的Java Web开发框架,由Apache软件基金会维护,它主要负责处理MVC(Model-View-Controller)架构中的控制器部分。本实验项目旨在帮助开发者深入理解Struts1的核心概念和工作流程,以便更好地在实际...

    Struts1和Struts2的区别和对比

    Struts1和Struts2是两个非常著名的Java Web框架,它们在设计模式、可测试性、输入处理和表现层等方面存在显著的区别。 首先,Action类的设计有所不同。在Struts1中,Action类需要继承一个抽象基类,这限制了Action...

    struts1和struts2的区别(详细)

    ### Struts1与Struts2的主要区别 #### 一、Action执行机制的不同 - **Struts1**: 在Struts1框架中,Action是基于单例模式的,这意味着所有的请求都会共享同一个Action实例。这就导致了如果在Action中保存实例变量...

    struts1.x和struts2.0电子书

    这个压缩包包含了两个关键版本的Struts框架的电子书,即Struts1.x和Struts2.0的相关资料。 **Struts1.x** Struts1.x是最初的Struts版本,它极大地简化了Java Servlet和JSP的应用开发。Struts1的核心概念包括Action...

    struts1 和 struts2所需jar包

    struts1 和 struts2所需jar包。主要包含以下内容: struts-1.3.10-all.zip struts-1.3.10-apps.zip struts-1.3.10-lib.zip struts-1.3.10-src.zip struts-2.3.4.1-all.zip struts.rar

    struts1+mvn样例程序

    Struts1是一个经典的Java Web开发框架,它引入了模型-视图-控制器(MVC)设计模式,使得开发者能够更有效地组织和管理Web应用程序。在本样例程序中,我们结合了Struts1与Maven,后者是一个项目管理和集成工具,能够...

    struts2和struts1 API及使用指南 chm

    Struts2是Struts1的升级版,它在Struts1的基础上引入了许多改进和新特性,提高了开发效率和应用性能。 Struts1是一个经典的MVC框架,它的核心组件包括Action、Form Bean、Action Mapping和Tiles等。Action是业务...

    struts1项目代码

    Struts1是一个经典的Java Web开发框架,由Apache软件基金会维护,它基于Model-View-Controller(MVC)设计模式,极大地简化了Java Servlet和JSP的开发。在本项目中,“struts1项目代码”提供了从头到尾的实现,包括...

    Struts1、Sturts2 PDF教程

    Struts1和Struts2是两个非常重要的Java Web框架,由Apache软件基金会开发,用于构建MVC(模型-视图-控制器)架构的应用程序。它们极大地简化了Web应用的开发,提高了代码的可维护性和组织性。 Struts1是早期的版本...

    struts1和struts2相关jar包(已分开

    这里提到的"struts1和struts2相关jar包"分别指的是Struts框架的两个主要版本:Struts 1和Struts 2。 **Struts 1** Struts 1是最早的版本,于2000年发布。它是基于Java Servlet和JSP技术的,旨在解决在JSP应用中控制...

    struts1漏洞总结及整改方案

    因为最近攻防演练,对公司的资产进行梳理,发现部分应用还使用的struts1框架,所以赶快收集整理了相关的漏洞以及相关的整改方案。提供给大家。

    struts1 poi Excel批量导入支持xls和xlsx-源码java

    Struts1是一个经典的Java Web开发框架,而Apache POI是一个流行的API,用于处理Microsoft Office格式的文件,包括Excel。在本项目中,"struts1 poi Excel批量导入支持xls和xlsx"是一个基于Struts1和POI实现的功能,...

    基于Java语言的Struts1框架的struts1Demo设计源码

    本项目为基于Java语言的Struts1框架设计的struts1Demo项目源码,包含55个文件,涵盖23个JAR包、10个Java源文件、6个JSP文件、4个XML配置文件及其他类型文件。

Global site tag (gtag.js) - Google Analytics