深入浅出了解Struts的处理流程(有图有真相)

      Struts框架在java web开发中很常用。最近我也在逐步摸索和学习。今天就来说说Struts的处理流程。

      先来一幅Struts工作原理图:

      从上面这幅图,我们可以清楚的看到Struts的实现原理:

  • 客户端的每个请求,都会首先到达ActionServlet,截取url;
  • ActionServlet会根据截取的url,在struts-config.xml的action-mapping中,找到对应action的配置信息,然后读取到ActionMapping中;
  • ActionServlet拿到ActionMapping中的name属性值,再从form-beans中找到对应的ActionForm,反射出实例来。将页面表单内容通过自动转换器转换后,放入到这个ActionForm中,传递给action处理类;
  • Action处理类拿到ActionForm,即可获取表单数据。通过ActionMapping则可以实现页面的转发。

      上面就是Struts工作原理的基本流程。通过断点调试struts,详细解释一下运行的流程:

      通过查看代码得知,

  • ActionServlet是通过process()方法来处理全部逻辑的。
  • action配置信息并不是全部加载,而是找与截取的url对应的action配置信息,加载到ActionMapping中,也就是一个action对应一个ActionMapping。
  • ActionForm也并不是每次都反射,而是会先判断一下request或者session中是否已经创建,如果没有,则创建一次,并保存在request或者session中。
  • Action处理类同样是先检查是否已经创建过,然后在操作。而且struts1中的Action创建过程存在线程安全问题。
  • ActionServlet根据Action返回的ActionForward,调用processForwardConfig,进行页面导航。

      

时间: 2024-09-13 04:10:00

深入浅出了解Struts的处理流程(有图有真相)的相关文章

2013 IT 时光记录

       现在写2013年下半年总结,好像是晚了很多,不做作为一名中国man,过了春节才算是2014,现在写也不算太晚了.        世界末日已经过去1年多了,时光总是美好的,但是美好的东西总是消失的很快,转眼间就从2013转到了2014年.正月也已经接近了尾声,想想也该Summary一下,使得颗粒归仓了.        突然间发现面对一年收获,心里却没怎么起伏,没有太多的忧愁,也没有太多的喜悦.        从2013年7月份,java的深入学习开始正式踏上了征途.        D

Struts开发指南之工作流程

下图是Struts的工作流程,前边我们提到,所有的请求都提交给ActionServlet来处理. 开发指南之工作流程-struts开发流程">ActionServlet是一个FrontController,它是一个标准的Servlet,它将request转发给RequestProcessor来处理, ActionMapping是ActionConfig的子类,实质上是对struts-config.xml的一个映射,从中可以取得所有的配置信息 RequestProcessor根据提交过来的u

新手学Struts(一)----JSP+Servlet讲解MVC实现原理

MVC基本原理 一个简单的例子 改良的例子 Struts基本流程的实现     最近在学SSH(Struts+ Hibernate+Spring),这也算是一个比较经典的框架了,之前都是看人家大牛说这个框架,那个框架,说的真溜,自己也是佩服的五体投地啊~~     现在开始自己也要捣鼓捣鼓这些东西,还是有点小激动哒~~,Struts是基于MVC框架实现的,今天主要讲讲Struts的实现过程. MVC基本原理     MVC框架,相信大家也都已经耳熟蓝(能)翔(详)了! 1.终端接受到用户的请求,

看看如何在Struts应用中施展AJAX魔法

ajax AJAX是最近在web开发流程中一次革命,它允许在一个普通的web浏览器中配置大量的动态效果.多年前Struts 都已经是Java-Web开发中的一个事实上的标准,在大量的应用中都已经使用了它.本文将告诉你,如何在你已经存在Struts应用中结合丰富的AJAX没Ы涌凇? 本文将介绍在JSP页面中包含一些JavaScript这样一个简单而有效的方法来结合AJAX和Struts.在此我们介绍如何重新使用已经存在的Struts actions,但此技术同样可用于你选择的其他Java-Web

Struts框架在小区物业管理系统中的应用

摘要  Struts提供了一个非常好的MVC框架,在Web应用开发中把界面和业务逻辑分离,提高了代码的可重用性和灵活性.文中首先介绍了Struts概念和体系结构,阐述了Struts的工作原理.然后介绍了小区物业管理系统各个功能模块以及整个系统基于Struts的开发流程.最后,通过一个应用示例,详细介绍了Struts框架在系统开发中的应用. 关键词  MVC:Struts框架:Web:物业管理系统:  前言  物业管理系统是近年来为适应小区建设和管理而兴起的一种新型产业,它的出现为住宅小区的现代化

浅谈struts和依赖注入在项目中的应用

我喜欢struts,喜欢ibatis,喜欢spring,但我却喜欢.net,这实在是件很矛盾的事情..net很好用,但在做项目的过程,总觉得缺少了点什么,对了,是框架.在java的世界里,有着许多成熟优秀的框架,但.net的框架,可选择的实在很少.在盼星星盼月亮的漫长过程里,终于盼到了Asp.net MVC,恕我不才,看来看去,都觉得这Asp.net MVC用起来实在是麻烦.我还是喜欢使用struts,尽管我很烦恼那些配置文件,但配置文件确实给我们带来了很多的好处.能轻松的扩展,轻易的修改.不过

在NetBeans IDE下开发Struts应用

由于公司的一个系统需要进行WEB化,对几种常见的WEB技术进行了调查.试用了下Struts,理解了Struts的开发流程.以下是试作的一个Login的小例子. 开发环境:JDK1.5.06 Struts1.2.7 NetBeans5.0(内嵌Tomcat5.5.9) 1 首先,使用NB创建一个WEB工程:Helo.选中是否使用Struts1.2.7的复选框. 2 创建LoginActionForm.java文件: public class LoginActionForm extends Acti

用XSLT和XML改进Struts

摘要 Struts是一个优秀的Java Web开发框架.Struts是Apache项目之一,现在Struts已经在Java开发团体中得到了广泛的支持.在这篇文章中Julien Mercay 和Gilbert Bouzeid将向我们介绍Struts的处理流程.描绘Struts框架,最后提出了Model 2x的设计方法.Model 2x用XML/XSLT替换掉了原来的表现层中的JSP页面.Model 2x通过这种方式更加明晰地划分了业务逻辑层和表现层. 正文 自从Servlet API发布以来,Ja

SSH三大框架的工作原理及流程

Hibernate工作原理及为什么要用? 原理: 1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件 2.由hibernate.cfg.xml中的读取并解析映射信息 3.通过config.buildSessionFactory();//创建SessionFactory 4.sessionFactory.openSession();//打开Sesssion 5.session.beginTransaction();//创建事务Tra