学习完了Struts1,然后在回头看看,自己学习的东西,感觉好乱,正好总结梳理一下。
在说Struts1之前,我们还要从我们的的过程化开发说起, 页面一个方法,直接干到数据库。然后取出数据,显示在页面上,真的很简单,很快捷,没有什么多余的动作,最快的显示页面,他的显示速度是最快的!但是我们会发现,我们一点我们的东西特别的乱,所有的东西都揉在一起了,想要添加一些新的东西,或者想要复用一下,都变得非常困难! 然后我们开始学习了三层架构,不得不说,三层架构(U,B,D)真的是一个经典,他将我们原来都揉在一起的东西,进行了分离,然后每个层都有不懂的职责,U层负责显示给用户数据,B层负责处理业务逻辑,D层负责跟数据库打交道,进行数据的存取,然后我们在每个层在进行划分,不同的职责放到不同的类中。这样我们既可以进行复用,又可以将我们的程序变的美观!
然而随着发展,我们又将U层进行了拆分,原来的asp.net 的开发,要求开发人员既需要会使用前台的代码,又需要会后台的编程语言。但是我们使用了mvc 后,前台和后台没有耦合,View 负责显示数据, 而Controller 负责页面之间的调转,这样各司其职!前台页面的开发人员,就可以专注于页面的美化,显示工作,而后台的开发人员,就专注于后台业务逻辑的开发,我们专人专用,会很大的提高开发效率!而且mvc比较轻量,运行比较快!
然后在来说一下我们的Struts1框架。看下面的图,他基本上描述了Struts1的执行过程。
1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。(面向对象思想)
2.发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器。
3.form填充:struts的总控制器ActionServlet在用户提交请求时将数据放到对应的ActionForm对象中的成员变量中。
4.派发请求:控制器根据配置信息对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给这个Action中的excute()方法。
5.处理业务:Action一般只包含一个excute()方法,它负责执行相应的业务逻辑(调用其它的业务模块) 完毕后返回一个ActionForward对象。服务器通过ActionForward对象进行转发工作。
6.返回响应:Action将业务处理的不同结果返回一个目标响应对象给总控制器。
7.查找响应:总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面。
8.响应用户:目标响应对象将结果传递给资源对象,将结果展现给用户。
原文地址:http://blog.csdn.net/zhanghongjie0302/article/details/46311105