struts详解

来源:互联网 发布:舆情分析研判数据 编辑:程序博客网 时间:2024/05/18 22:10

     一.struts工作原理:

   struts的有两个控制器,分别是前端的ActionServlet中心控制器,和后端所有action都需要继承的Action控制器。真正的开发过程中,项目开发人员并不需要对ActionServlet有过多的了解就可以开发的很happy。但是如果要很好的使用struts框架,就很有必要了解一下,就像开汽车一样,没有必要了解汽车的工作原理,会开就行了,但是某天车出现故障,或者要组装一辆自己的车,那不了解工作原理的话,就会很被动,了解是为了更好的使用:

   

 

     1). 读取配置(初始化ModuleConfig对象)

      采用Struts框架的Web应用,在Web应用启动时就会加载并初始化ActionServlet,在ActionServlet初始化 ModuleConfig的候,调用initModuleConfigFactory()初始化配置工厂,然后由配置工厂通过 initModuleConfig("", config)获得ModuleConfig对象。通过ModuleConfig对象调用下列方法去初始化相关模块。

     a.initModuleMessageResources(moduleConfig);

     b.initModuleDataSources(moduleConfig); 

     c.initModulePlugIns(moduleConfig)

     这些方法的功能就是:容器在加载Struts应用程序时,会先加载web.xml中与Struts相关的一些配置参数,找到struts-config.xml文件,然后通过循环来读取此文件和解析里面的内容,并初始化相关对象。

  2). 用户请求

      用户提交表单或调用url向Web应用程序服务器提交一个请求,请求的数据用HTTP协议上传给Web服务器。

      3). 填充FormBean

      填充FormBean的过程包括实例化、复位、填充数据、校验、保存等操作。根据*.do请求从ActionConfig中找出对应该请求的 Action子类,如有对应的Action且这个Action有一个相应的ActionForm,则ActionForm被实例化并用HTTP请求的数据 填充其属性,并保存在ServletContext中,这样它们就可以被其他Action对象或JSP调用。如果没有对应的Action,控制器则直接转 发给JSP或静态页面。

     4). 转发请求

      控制器根据配置信息ActionConfig将请求派发到具体的Action,与请求相应的FormBean将一并传给这个Action对象。

     5). 处理业务

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

     6). 返回响应

     Action根据业务处理的不同结果返回一个响应对象给总控制器,该目标响应对象对应一个具体的JSP页面或另一个Action。

     7). 查找响应

     总控制器根据业务功能Action返回的目标响应对象找到对应的资源对象,通常是一个具体的JSP页面。

     8). 响应用户

      目标响应对象将结果展现给用户目标响应对象,即具体的JSP页面,这样客户就得到响应的结果。

这里只是从使用Struts的角度对它的工作原理作了分析,在后面的章节中还会深入分析ActionMapping对象、ActionForm对象及Action对象的初始化过程。

1 0
原创粉丝点击