叫嚣struts这么长时间了,现在struts 1.2.2都出来了,才开始着手真正去学习了解她,真是自感汗颜啊...
一.学习途径
主要通过http://struts.apache.org/userGuide/ 来学习,初步看了一下,感觉还是比较详细,很容易入手的。一路仔细看来,从struts的发展和诞生环境,以及其基本思想,对我来说,都有一些与我心有戚戚鄢,呵呵。
二.学习要点
从HTTP, HTML and User Agents开时,到其mvc思想综述,逐步深入了解struts。
几天主要是http://struts.apache.org/userGuide/preface.html ,读到0.5.1 Reflection and Introspection这一节,感觉有必要再次回顾一次javabean的运行机理,捎带对java映射等进行复习。
tip1:才发现javabean和java的数据结构在java web的应用中有着某些相似之处,比如javabean通过get和set主要实现数据的存取,和map已经vector等数据结构有着深刻的联系~
tip2:DynaBeans 这个联合javabean和map的东东,他应该是介于javabean和map之间的一种数据存储结构,类似.net中枚举,目的是实施一些“中型”数据的存取(可能主要是取),ref:In a Struts application, you can use DynaBeans to describe your HTML forms. This strategy can avoid creating a formal JavaBean subclass to store a few simple properties.
tip3: Properties Files and ResourceBundles,是开发者和web application的一种资源交互(应该主要是资源提供),通过其,struts provide message resources to an application,常见应用为i18n本地化等。
tip4:cotainer为了提高性能,对servlet启用了多thread,这样有一个代价,那就是servlet的doget和dopost方法必须实现thread-safe
tip5:Servlet Context,这个在在jsp充当application scope beans的东东,负责servlet和其他web application的沟通,如通过getResource() and getResourceAsStream() 访问resource files 或者通过getAttribute()方法获得web配置文件中通过string-valued keys定义的参数,servlet通过getServletConfig获得Servlet Context。
tip6:Dispatching Requests,重新分配request,如forward在jsp中的应用。
三,结束语
感谢apache组织,感谢struts开发人员和帮助撰写者,能读到如此深入浅出、面面俱到的user guide,简直就是一种享受和幸福。/bow