Struts2学习笔记:从WebWork到Struts2的转变解析

需积分: 10 1 下载量 179 浏览量 更新于2024-07-31 收藏 710KB PDF 举报
"Unmi 的 Struts2 学习笔记" Unmi的Struts2学习笔记是一系列关于Struts2框架的详细记录,适合初学者和有Struts1背景的开发者进行深入学习。作者Unmi在笔记中指出,尽管Struts2在名称上与Struts1有关联,但在技术实现上,Struts2实际上基于WebWork,这导致了两者之间存在显著差异,原有的Struts1经验对理解Struts2帮助不大。 1. **框架结构变化**:Struts2不再延续Struts1的血缘关系,它继承自WebWork框架,WebWork因此停止更新。对于WebWork的用户,迁移到Struts2相对平滑。Struts1的核心是ActionServlet,而Struts2则采用FilterDispatcher作为核心控制器,这一改变使得Struts2的处理流程更加灵活。 2. **Action设计**:在Struts1中,Action类需要继承AbstractAction,且与ServletAPI紧密耦合,而在Struts2中,Action可以实现ActionSupport接口,也可以是纯粹的POJO,这样降低了侵入性,增强了测试性,使得单元测试更为便捷。 3. **实例管理**:Struts1中,Action实例在整个应用生命周期中只有一个,可能导致线程安全问题。相比之下,Struts2为每个请求创建新的Action实例,确保了线程安全,但也意味着对内存管理的要求更高。 4. **数据接收**:Struts1通过ActionForm来处理请求数据,ActionForm依赖ServletAPI且非标准JavaBean。而在Struts2中,可以直接通过Action的属性获取请求参数,或封装在独立的POJO中。Struts1.3虽然也支持POJO,但使用相对复杂。 5. **表达式语言**:Struts2引入了OGNL(Object-Graph Navigation Language)作为表达式语言,能够方便地访问值栈,对集合和索引属性的支持更为强大,极大地提高了开发效率和灵活性。 6. **配置文件**:Struts1只需要一个struts-config.xml配置文件,而Struts2的配置文件包括struts.xml和struts.properties。struts.properties中的配置项如struts.devMode和struts.configuration.xml.reload,可以方便地切换开发和生产模式,并自动重新加载配置,简化了开发过程。 这些笔记深入浅出地介绍了Struts2与Struts1的关键差异,对于理解Struts2的架构和工作原理非常有帮助,同时也突显了Struts2在设计上的进步,如增强的可测试性、更好的线程安全性和更灵活的数据绑定。