看到struts2.x,原以为是struts1x的改版,学习了struts2.x才知道,它是webWork的更新版本,核心就是webWork,webWork是另一个opensymphony开发组织,也挺优秀的,感觉struts2.x比起struts1.x优秀多了,只是struts1.x出现的比较早,所以用struts1.x开发的还比较多,一时难以接收。以下总结一些struts2和struts1的功能比对,以供参考。
struts2和struts1之比对:struts2的优势
从体系结构来看:struts2大量使用拦截器来出来请求,从而允许与 业务逻辑控制器 与 servlet-api分离,避免了侵入性;而struts1.x 在action中明显的侵入了servlet-api.
从线程安全分析:struts2.x是线程安全的,每一个对象产生一个实例,避免了线程安全问题;而struts1.x在action中属于单线程。
性能方面:struts2.x测试可以脱离web容器,而struts1.x依赖servlet-api,测试需要依赖web容器。
请求参数封装对比:struts2.x使用ModelDriven模式,这样我们 直接 封装model对象,无需要继承任何struts2的基类,避免了侵入性。
标签的优势:标签库几乎可以完全替代JSTL的标签库,并且 struts2.x支持 强大的ognl表达式。
当然,struts2和struts1相比,在 文件上传,数据校验 等方面也 方便了好多。在这就不详谈了。
一个比较优秀的 框架 可以 帮着 我们 更高效,稳定的开发 合格的产品,不过我们也不要 依赖框架,我们只要理解了思想,设计模式,我们可以自己扩展 功能,不然 就要 永远让别人牵着走了!