Struts1的工作原理分析

这是很久前的东西了,拿过来再结合自己的做过项目,琢磨琢磨。

1 Struts1的执行流程

1)客户端发起.do结尾的请求,由ActionSerlvet接收;
2)ActionServlet接收请求,交给RequestProcessor处理(实际上就是调用RequestProcessor的process方法);
3)RequestProccessor根据请求路径查找对应的ActionMapping,如果找不到,报404错误;
4)RequestProccessor查找或者创建一个ActionForm对象(ActionForm可以被重用,存在于两个范围,Session或者Request);
5)RequestProccessor调用ActionForm的reset方法,重置状态信息;
6)RequestProccessor调用ActionForm的setXXX方法,将客户端提交的参数封装到ActionForm中;
7)RequestProccessor调用ActionForm的validate方法,如果此方法返回一个ActionErrors对象,并且这个对象中包含错误信息,那么认为验证失败,如果验证失败,那么将请求转发到Action元素的input属性指定的路径上去,反之验证成功;
8)RequestProccessor查找或者创建一个Action(Action对象是单例的);
9)RequestProccessor调用Action对象的execute方法执行Action,并且传入ActionMapping,ActionForm,HttpServletRequest,HttpServletResponse这四个对象;
10)在Action的execute方法中可以通过调用ActionForm的getter方法来获得客户端提交的数据,可以调用模型的方法来处理业务;

11)通过ActionMapping的findForward方法返回一个ActionForward对象或者直接new一个ActionForward对象;这大概也是struts1中的execute方法

多传了一个ActionMapping参数的原因吧、因为它不像struts2返回的是一个String类型的字符串、它返回的是一个Forward对象、使用ActionMapping来找到这个Forword

对象

12)主控器获得Action返回的ActionForward对象,然后根据这个对象中封装的信息,将请求转发(重定向或者内部跳转)到具体页面;
13)jsp页面向客户端作出响应;
四个主要类的请求顺序是:ActionMapping--ActionForm---Action---ActionForward.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值