学了十来天的Struts,对它总体的框架结构有了一定的认识,在它的ActionServlet,ActionMapping,ActionForm,Action,ActionForward等几大组件中,觉得ActionServlet和ActionMapping最难理解,而Action,ActionForm和ActionForward最易理解,原因在于Action是Struts中最主要的部分,也是程序员从Web layer取得数据放到ActionForm中,然后在Action中实现业务逻辑,所以这部分是整个应用程序实现代码最多的地方,也是程序员最Focus的模块,所以我理解的比较深刻。
相反,ActionServlet和ActionMapping前者是被封装好了的隐藏的自动执行的contraller,后者是一个属于连接控制分配的模块,它多于配置文件打交道,很少生成类的Instence,所以直接操作它来编程的机会不多,因此对其理解不深刻。
虽然才学了很短时间,也写不出多少很有技术含量的文章,但Struts给我最直接的感觉就是"规范化",不管是一个人开发还是多人分模块开发。一个人开发小型项目,用Struts能很清楚的知道自己要干什么,在什么地方做恰当的事情,Struts framework给你分的很清楚,我以前用Jsp+servlet+javaBean开发过项目,虽然也是基于MVC模式的,但毕竟不是框架,很多地方设计还是不合理,导致分层做得不好,代码很难维护。而对于多人开发,Struts也是很适合,因为一般团队开发都是分模块开发,每个人负责一个功能模块,而且Struts还可以给每个模块都设定一个Struts-config.xml文件,这样每个人就感觉是自己一个人开发一个项目一样,这样就在开发中降低了耦合性,最后只要在集成的时候注意每个Struts-config.xml文件的命名,避免重复。
这就是我现在对Struts的理解,也许很肤浅,但只要一直认真的学下去写下去,我也会成为Struts高手。