现在的位置: 首页 > 综合 > 正文

Struts的请求回应流程

2013年08月08日 ⁄ 综合 ⁄ 共 883字 ⁄ 字号 评论关闭

1.  客户发送匹配Action URI 样式的路径的请求 (1).

2. 容器将请求传递给ActionServlet.

3. 如果这个是模块化应用,ActionServlet 选择响应的模块。

4. ActionServlet 查询路径的映射。

5. 如果映射标明了一个form bean,ActionServlet 看是否已经有一个实例,或者创建一个新的实例 (1.1)。

6. 如果已经有一个form bean,ActionServlet 对其重新设置,,并根据HTTP请求对其重新组装。

7. 如果 该mapping 的 validate 属性设置为 true, 它将调用 form bean 的validate 方法(1.2)。

8. 如果失败,Servlet 将控制转发到input 属性标明的路径,控制流终止。

9. 如果mapping 标明一个Action 类型,而且如果它已经存在或已经实例化,它将被重用(1.3)。

10.Action的perform 或 execute 方法被调用,并把一个实例化的form bean (或者null)向前传递。

11.Action 可以组装form bean, 调用业务对象,以及其他需要做的事情。(1.3.1-1.3.4)。

12.Action 返回一个ActionForward 给ActionServlet (1.3.5).

13.如果ActionForward 指向另一个 Action URI,重新开始; 否则,显示页面或者其他资源,流程结束。通常,结果是一个JSP页面,或者Jasper, 或其它类似技术 (非 Struts) 加工的页面。(2.3).

14.如果JSP 使用Struts HTML 标记, 并且这些标记能够在请求中找到正确的ActionForm (1.1),他们会从ActionForm中组装HTML控件。否则, <html:form> 标记就会创建一个。从Struts 1.1开始,  如果form 标记自行创建一个ActionForm ,它将调用ActionForm的Reset方法。

15.如果你只是想创建一个空白的表单 (1.1),你可以使用标准的ForwardAction(见第8章) 来通过Action传递控制,然后离开页面。

抱歉!评论已关闭.