文档章节

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

白志华
 白志华
发布于 2015/10/18 10:57
字数 443
阅读 8
收藏 0

      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,进行页面导航。


      

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/xiaoxian8023/article/details/11516043

共有 人打赏支持
白志华
粉丝 29
博文 265
码字总数 57524
作品 0
长沙
程序员
用Struts建立MVC应用的介绍【转】

Model 1 和Model 2简介 我们在开发Web应用时经常提到的一个概念是Model 1/Model 2,那么到底它是什么意思呢?其实它是对采用JSP技术构成Web应用的不同模型的描述。下面对这个概念做一个简单的...

磊神Ray
2011/09/05
0
0
struts1.* 异常处理机制

几个重要类的说明 ActionServlet struts的核心类,用于初始化struts配置文件,处理发送到action的请求; ModuleConfig struts配置文件信息加载的接口,ModuleConfigImpl是接口的默认实现,可...

STG0825
2013/08/29
0
0
Struts2核心工作原理解析

阐述struts2的执行流程。 Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。 核心控制器FilterDispatcher是Struts 2框架的...

蚂蚁也疯狂
2015/04/14
0
0
基于struts1.框架的异常处理方案

首先感谢“郡主”对我的支持,她帮忙完善了跳转地址重定向问题。 1. 目标——什么异常需要我们处理 通常来说,在业务流程中已经将大部分异常进行处理,因为大部分异常是继承java.lang.Excep...

STG0825
2013/09/06
0
0
Struts2 Convention插件远程代码执行

漏洞描述 在基于struts2开发的应用中如果使用convention插件则可以实现远程代码执行(不需要S2-057的类似的需要特定的result才能触发)。该漏洞只需要在lib包中存在convention插件即可。 限制...

技术小能手
09/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
31分钟前
0
0
Permissions 0777 for ‘***’ are too open

异常显示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ......

李玉长
33分钟前
0
0
区块链10年了,还未落地,它失败了吗?

导读 几乎每个人,甚至是对通证持怀疑态度的人,都对区块链的技术有积极的看法,因为它有可能改变世界。然而,区块链技术问世已经10年了,我们仍然没有真正的用上区块链技术。 几乎每个人,甚...

问题终结者
今天
2
0
20180921 su与sudo命令、限制root用户通过ssh远程登录

su 命令 用户切换。 su # 切换到root用户su username # 切换到username用户# su 后面加-时,会初始化当前用户的各种环境su - username # 指定用户执行某些命令 su - -c "touch /tm...

野雪球
今天
2
0
Windows 下双 Python 开发环境配置

Windows 下双 Python 开发环境配置作者:老农民(刘启华)QQ: 46715422Email: 46715422@qq.com微信: 46715422 本人曾经在 Windows 下被两个版本环境折腾够呛,现在总结两个 Python...

新疆老农民
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部