深入剖析Struts框架原理

来源:互联网 发布:adobe输出软件 编辑:程序博客网 时间:2024/05/16 01:49

          Strutsweb层的框架,主要用于页面流转的控制,但是如果你不知道它的执行过程,你就无法很好的驾驭它。本文将从Struts框架的执行过程的讲解,来让你更好的掌握它,并举一反三,来学习其他框架的使用。

        首先,客户端发出http请求,根据web.xml文件的配置找到相应的actionservlet),调用actiondoGet或者doPost方法。actionServlet会调用requestProcessor类的process方法。这个方法完成了一系列的操作。

1processPath方法截取URL

该方法根据客户端http协议发送的URL进行截取,例如登陆中将截取/login.do

2processMapping方法取得actionMapping

根据截取的url,到struts-config.xml中查询相关信息,并取得actionMappingactionMapping是在什么时候生成的,配置文件中有设置。)

3processActionForm方法取得actionform

根据actionMapping中的name,查找actionform,如果request中存在则返回,如果不存在就创建并放到scope

4processPopulated方法,设置数据到actionform

request中的表单数据设置到一个map中,在将数据设置到actionform

5processactioncreate方法,获得action对象

根据action的类名称去map中查找,如果存在则返回,如果不存在则创建并放到Map中。单实例的,有线程安全问题。

6processactionperform方法,执行execute方法,返回actionforward对象

7processForwardConfig方法完成转向

  通过上面的介绍,相信你已经了解了Struts的实现原理,那么,作为开发人员,我们如何快速的上手使用struts框架呢?

 简单的说:

首先,我们在表单配置了访问路径,请求达到处理类(requestProcessor),处理类根据这个路径,会到struts-config.xml中找action,并把actionformactionforward带到指定的action类中。

经过action处理,如获取数据,处理数据,将数据设置到scope中等,返回ActionForward.返回的ActionForward回到处理类.处理类将页面转向到ActionForward指定的页面。


下图是使用Rose类似时序图的形式,以图形来说明Struts的执行过程,通过图再次回顾。