今天开始学习struts2,一来为简历增加一份技能,二来为以后工作铺好路。
早些时候看过相应资料,知道struts2结合了struts1 与web work的优点,其核心是webwork的延伸。在学了spring之后,又了解到struts2采用了IOC机制。今天查资料,总结一下两者的区别:
1.线程安全方面:struts1实现单例,带来了线程安全问题;而struts2为每一个请求生成一个实例
2.表单数据获取方面:struts1表单数据存放在ActionForm;struts2采用了IOC可将生成seter方法或在构造方法或以域模型来获取
3.action映射方面:struts1如继承Action需重写excute方法,且不能处理普通类;struts2与struts1的DynamicAction类似,只需制定方法名 但不需要指定方法参数
4.与servlet的耦合方面:struts1与servlet耦合紧密;而struts2不依靠servlet,有自身获取request,response方式
5.测试方面:由于struts1与servlet紧耦合,测试不方便;而struts2解决了这一问题,便于测试
6.标签方面:Struts 1整合了JSTL,Struts 2可以使用JSTL,但它整合了一种更强大和灵活的表达式语言:OGNL(对标签理解不是很好,借用别人的话)
7.校验、国际化方面:没做研究,研究到后再补上。
暂时总结到这里。