`

struts1.2和2.0的工作原理

阅读更多
struts 1.2 工作原理:
1.ActionServlet核心控制器会拦截所有*.do的请求 
2.从struts-config.xml中找到用户请求的Action 
3.通过struts-config.xml中的配置再去找这个Action对应的ActionForm,并实例化 
4.把用户填写的数据自动填充到ActionForm中(调用ActionForm中的setXX()方法填充) 
5.同时把ActionForm放入到指定的范围中(request,session) 
6.然后把请求转发给Action 
7.Action获取ActionForm中的值然后调用业务逻辑层实现功能 
8.在通过ActionMapping查找Actionforward实现转发; 

流程如下:
Struts的流程 
  服务器启动后,根据web.xml加载ActionServlet读取struts-config.xml文件内容到内存。 
  以登陆为例:第一次进login.jsp会先实例化Form、把默认值赋给表单元素。 
  输入用户名密码提交表单、提交到action属性的login.do,通过ActionServlet读struts-config.xml文件找到 action下的path属性找到.do,通过name属性找form-beans中的form-bean的name属性得到ActionForm的包名类名,先实例化form,把表单的值填充给form,调用form的validate方法验证、ActionErrors返回null表示验证通过,否则失败返回input指定的页面.验证通过会实例化Action,执行Action的excute方法。

 

struts 2.0的工作原理:
(省略服务器启动部分,呵呵)
1.当用户在页面上进行操作时,生成了*.action的请求传给struts.xml(MVC中的V) 
2.服务器根据这个配置文件中所定义的action名称,寻找匹配的处理方法:如果没有定义method,则直接调用的是class里面的类的execute方法,如果定义了method,则是调用的class类里的method中所指明的方法(MVC中的C) 
3.在method中进行处理,在这里有可能采用若干高深莫测的方法,但都属于较为底层的工作,比如访问数据库等等(MVC中的M) 
4.方法处理完后(可能有一串的处理方法,但终究有一个方法是最终进行的),return了一个字符串,比如success、error等,并将这个字符串送回给struts.xml,struts.xml在前面action标签内部定义的若干个result中,找到name属性与返回字符传相同的,然后根据type的类型,向指定页面进行跳转。(MVC中的C) 
5.跳转的页面接受到了请求,生成页面在浏览器里进行显示。(MVC中的V) 

 

分享到:
评论
2 楼 Leon&ZM 2011-07-25  
嗯,写的挺好的,谢谢
1 楼 和未来 2010-12-07  
读了一遍 感觉struts印象又加深了很多 谢谢

相关推荐

    struts1.2+spring2.0+ibatis2.3简单新闻发布

    Struts1.2、Spring2.0 和 iBATIS2.3 是早期广泛使用的Java Web开发框架组合,它们各自承担着不同的...然而,理解并掌握Struts1.2、Spring2.0和iBATIS2.3的基本原理和用法,对于理解现代Web框架的工作机制仍然大有裨益。

    struts1.2+spring2.0+hibernate3.1框架所需jar包

    在这个“struts1.2+spring2.0+hibernate3.1框架所需jar包”压缩包中,包含了这三个框架的核心库和其他必要的依赖,以便于开发者在项目中集成和使用。 **Struts 1.2** 是一个基于MVC设计模式的Java Web框架,它使得...

    struts1.2+ibatis+DWR2.0+MySql5.0增删改查的小例子

    Struts1.2、iBatis、DWR2.0和MySql5.0是Java Web开发中的四个重要组件,它们分别在MVC(模型-视图-控制器)架构的不同层面上发挥着关键作用。这个小例子展示了如何将这些技术整合在一起,实现一个基本的增删改查功能...

    Struts源码和帮助文档

    通过源码分析,你可以了解框架的内部结构和工作原理;通过开发手册,你可以掌握如何有效地利用Struts进行开发;而标签查询帮助则将使你在使用Struts标签时得心应手。无论是初学者还是经验丰富的开发者,这个包都将为...

    struts1.x和struts2.0电子书

    《Struts2.0中文帮助手册.chm》将详细介绍Struts2的API、配置和使用技巧,而《Struts1.2.pdf》则可能包含了Struts1.x的框架原理、开发流程以及案例分析。通过学习这两本书,开发者可以深入理解这两个版本的Struts...

    Myeclipse6.5GA__struts1.2_spring2.5_hibernate3.2

    这篇教程主要介绍的是如何在MyEclipse 6.5环境下整合Struts 1.2、Spring 2.5和Hibernate 3.2这三个流行的Java Web开发框架,以便于初学者理解SSH框架的工作机制并避免常见错误。 首先,教程强调了在高版本的...

    spring2.0 hibernate 3.0 struts1.1 xfire1.2 整合

    总之,Spring 2.0、Hibernate 3.0、Struts 1.1和XFire 1.2的整合是Java Web开发历史上的一个重要组合,展示了如何通过各种工具和框架来构建复杂的分布式系统。尽管这些技术有些已经过时,理解它们的集成原理对于理解...

    jsp+struts小项目-4

    通过这样的小项目,学习者可以理解MVC架构的工作原理,掌握Struts1.2框架的核心组件和配置,以及JSP如何与JavaBean协同工作。这种实践性学习有助于深化对Web开发技术的理解,提高解决问题的能力。 【标签】:“jsp ...

    struts学习资料

    1. **Struts1.2与Struts2.0的区别** - **Struts1.2**:它是Struts框架的早期版本,引入了Action和Form Bean的概念,实现了请求到业务逻辑的映射,但其配置较为繁琐,对Ajax支持不足。 - **Struts2.0**:基于Struts...

    Java面试题专题之SSH框架_ssm框架面试题.pdf

    - **配置方式**:Struts 1.2主要通过struts-config.xml配置,Struts 2.0则使用更灵活的XML和注解混合配置。 - **标签库**:Struts 2.0提供了更强大的标签库,如OGNL表达式,使得视图层更加动态。 5. **SSM框架** ...

    Java - SSH面试题

    对于SSH面试,理解并能详细解释这些框架的核心概念、工作原理和优缺点是至关重要的。此外,还需要熟悉如何配置和使用这些框架,以及解决实际开发中的问题。同时,具备使用JUnit或其他测试工具对这些框架的组件进行...

    Java求职面试宝典各大公司常考知识点

    4.6. struts1.2和struts2.0的区别?如何控制两种框架中的单例模式? 9 4.7. struts如何实现国际化 9 4.8. struts2.0的常用标签有哪些 10 4.9. struts中怎么配置form-bean、action、tiles 10 4.10. logic标签有哪几个...

    Java面试题专题之SSH框架_ssm框架面试题.docx

    Java面试中的SSH(Struts+Spring+Hibernate)框架与SSM(Spring+SpringMVC+MyBatis)框架是Web开发中的重要组成部分,通常在面试中...理解并熟练掌握这些框架的原理和实践应用,对于成为一名合格的Java开发者至关重要。

    徒手配置Struts2

    ### 徒手配置Struts2的关键知识点 #### 一、徒手配置Struts2环境时需注意的关键事项 ...此外,通过深入理解配置文件的每一个元素,可以帮助开发者更好地掌握Struts2的工作原理,从而提高应用程序的开发效率和质量。

    struts2完全学习手册

    ### Struts2完全学习手册知识点解析 #### 一、Struts2简介 ##### 1. Struts2配置文件 ...通过以上解析,我们可以了解到Struts2框架的基本配置方法及其工作原理,这对于理解和使用Struts2至关重要。

    Example_SSH.rar_ssh example_ssh example download

    此外,Spring 2.0引入了Spring MVC,但本案例可能并未涉及,而是与Struts1.2协同工作。 3. **Hibernate 3.1**:Hibernate是一个对象关系映射(Object-Relational Mapping, ORM)框架,它简化了数据库操作。通过...

    struts2学习笔记.doc

    - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序的开发过程。 - **Struts2的起源**:Struts2最初由WebWork和Struts1的核心...

    Sstruts+Hibernate+spring整合案例

    这个整合案例是基于Struts1.2、Hibernate3.1和Spring2.0的老版本进行的,尽管现在有更新的版本,但理解这些基础版本有助于深入学习和理解框架的原理。 Struts是一个MVC(Model-View-Controller)框架,主要处理用户...

    SSH集成录像

    SSH集成录像是一个关于Java开发中的经典技术栈整合的教程,主要涵盖了Struts1.2、Hibernate3.1和Spring2.0这三个框架的整合应用。SSH(Struts、Spring、Hibernate)是Java企业级开发中常用的三大开源框架,它们分别...

Global site tag (gtag.js) - Google Analytics