深入浅出了解Struts的处理流程(有图有真相)
2013-09-14 08:11
183 查看
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,进行页面导航。
先来一幅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,进行页面导航。
相关文章推荐
- 深入浅出了解Struts的处理流程(有图有真相)
- 深入浅出了解Struts的处理流程
- Sruts2与Struts1框架处理流程的区别
- Struts1的处理流程
- 一张图让你了解安卓事件处理流程的走向
- ActionErrors 使用说明 struts1 validate 处理流程 详细教程(转)
- Scala 深入浅出实战经典 第2讲 Scala函数定义、流程控制、异常处理入门实战
- struts2.0的处理流程
- 4、struts处理流程和action的管理方式
- struts--为Action的属性注入值、处理流程
- Struts 2框架的大致处理流程
- Struts 2请求处理流程
- 阿录帮帮忙—第四章—struts处理流程的介绍
- Struts2学习笔记之struts.xml配置常量和Action处理流程
- Struts1流程处理
- Struts 2框架的大致处理流程
- 通过简单示例来了解Struts流程
- 层层递进Struts1(五)之处理流程
- Struts2学习笔记之struts.xml配置常量和Action处理流程
- Struts 2框架的大致处理流程