您的位置:首页 > 编程语言 > Java开发

传智播客学习之Struts 工作原理

2010-02-07 22:52 302 查看
这几天一直忙着做OA这个系统,这也是年前最后一个项目了,不过这次上课的汤老师十分的不错,思路非常清晰,他在讲每一个知识点的时候,都会有图解,让我们对项目的整个流程掌握的十分清晰,同时在今天的项目中,我们综合了struts,hibernate,jquery等多个框架,让我勾起了对struts的深深回忆,所以今天和大家一起分享一下struts1的工作原理。
通过struts的学习,我觉得struts主要分为一下八步:



以上主要是一个简要图,下面我详细说明一下每一步:
1.读取配置(启动时读取配置文件,初始化ModuleConfig对象)http请求给web服务器,然后如果是.do的请求,从web.xml中配置成自启动(load-on-start)Servlet,读取配置文件struts-config.xml,为不同的struts模块初始化相应的moduleconfig对象,比如下面的初始化
(ActionConfig controlconfig(控制器初始化),FromBeanConfig(初始化),ForwardConfig初始化,MessageResourceConfig初始化
2.发送请求
用户提交表单或者url向web应用程序器提交一个请求,请求的数据用Http协议上传给Web服务器
3.填充Form(实例化,复位,填充数据,校验,保存)
*.do请求从ActionConfig中找出相应该请求的Action子类,如没有对应的Action,控制器直接转发给Jsp或者静态页面,如有对应的action且这个Action有一个相应的ActionFrom,
ActionFrom被实例化并用Http请求的数据填充其属性,并且保存在servletContext中(或request session中),这样就可以被其他Action对象或者jsp调用
上面的时候ActionServlet从请求中获得数据并填充Formbean

4.派发请求:(去见后端控制器Action,实际就是他的execute方法)控制器根据配置信息ActionConfig(根据已经读取进内存中的封装了配置信息的对象(ActionConfig),action标签的path和type属性)将请求派发到具体到Action,相应的formBean一并传给这个Action的excute方法

5.处理业务
Action一般只包含一个execute方法,它负责执行相应的业务逻辑(调用其他业务模块),完毕后返回一个ActionForward对象,控制器通过该ActionForward对象进行转发工作

6.返回响应
Action根据业务处理的不同结果返回一个目标响应对象给总控制器,该目标响应对象(实际是一个关键字,然后去参考配置文件,找到真正跳转目标,转发)对应一个具体的jsp页面或者另一个Action
7.查找响应
总控制器根据业务功能Action返回的目标相应对象,找到对应的资源对象,通常是一个具体的jsp页面。
8.响应用户,目标相应对象将结果展现给用户目标响应对象将结果页面展现给用户
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: