Struts的运行过程
(1)在Web容器启动时候,ActionServlet被初始化,加载struts-config.xml配置文件。
(2)当客户端浏览器发起请求到ActionServlet时,ActionServlet首先对请求进行一系列处理:
根据请求的路径和配置信息找到对应的Action Bean 和Form Bean 。例如:当提交表单发送http://localhost:8080/cal/add.do请求到服务器的时候,ActionServlet就会根据Struts配置信息查找path属性为”/add”的Action Bean,于是找到AddAction;并得知该Action的name属性为”addForm”,于是找到AddForm的实例(如果不存在就创建)。
(3)在确定将要调用的Action Bean和对应的Form Bean 后,就将请求中包含的值填充到Form Bean 中(Action可以不关联任何ActionForm,所以这一步是可选的)。在调用Action的execute方法前,ActionServlet还需要准备好ActionMapping参数,ActionMapping中包含了该Action的配置信息。
(4)然后Struts将请求分发至相应的Action Bean 处理,ActionMapping参数,ActionForm参数,request和response都作为参数传给处理请求的Action Bean的execute方法
(5)Action 调用业务逻辑方法,得到返回值,并返回ActionForword对象。
(6)控制权重新回到ActionServlet,ActionServlet根据Action返回的ActionForward对象转发到相应的JSP页面。
(7)处理结果返回给浏览器。