您的位置:首页 > 编程语言 > Java开发

struts1和2的区别总结

2016-02-15 17:29 302 查看
Struts2主要改进是取代了Struts1的Servlet和Action。

1、Struts2的核心框架是当作一个filter来实现其功能的,而Struts1是ActionServlet。这是本质区别。struts1通过servlet来拦截客户端的请求,因为在web.xml里定义了一个ActionServlet。struts2通过filter来拦截客户端的请求,因为在web.xml里定义了一个FilterDispatcher。struts1 是struts的核心,是基于servlet的API,struts2 是webwork的核心。基于自己的API。

2、 struts1通过actionform来封装客户端提交的表单数据,struts2通过在action中定义getter setter来获取表单数据。

3、在Action上,Struts1都少不了要传递Request等参数,还要继承Action父类,而Struts2只要实现了一个publicString execute()就可以了,这样Action就可以实现脱离Servlet 测试。

Struts2还提供了拦截器(Interceptot)等Struts1所没有的技术。

4、线程方面,Struts1 Action是单例模式并且必须是线程安全的,因为只有Action的一个实例来处理所有请求。要求线程必须是安全的。Struts2 Action对象为每一个请求创建一个独立的对象实例,因此不存在线程安全的问题。Struts1,server启动后,对用户的每个request, 后台controller会mapping其对应的ACTION,如果是首次访问,则initialize。单例的好处:多个request共享一个ACTION
instance,节省了资源,但由于共享,not thread safe,需要额外小心。Struts 2,采用Webwork的核心引擎,每个request会new 出一ACTION instance, 不用考虑thread safe问题。

5、一个简单的配置文件struts.xml取代了struts1里面的strut-config.xml。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: