《学习笔记》struts1和struts2的区别总结

struts2是在struts1和WebWork技术的基础上进行合并后的全新框架。其核心是WebWork。

1、本质区别:struts2的核心是基于Filter实现的,而struts1的核心是ActionServlet。struts2在web.xml中定义了一个FilterDispatcher(StrutsPrepareAndExecuteFilter)来拦截客户端的请求,而struts1在web.xml中定义了一个ActionServlet来拦截客户端的请求。

2、线程方面:struts2采用WebWork的核心,对于每一个request请求都会创建一个Action实例,没有线程安全问题。而struts1中Action是单例模式并且必须是线程安全的(因为只有一个Action实例处理所有请求,所以必须是线程安全的),单例的好处:多个request共用一个Action实例,节省了资源,但由于共用,线程不安全(not thread safe)。

3、Action实现类方面:struts1的Action在实现时必须继承Action类或者Action的子类,而struts2的Action在实现时可以不用实现任何类和接口,也可以实现Action接口和其它接口,实现了可选和定制服务。同时struts2提供了一个ActionSupport基类实现常用的接口,但是不是必须要实现的。只要实现了public String execute()方法的POJO类都可以当做struts2的Action

4、struts2提供了拦截器(Interceptor)等struts1没有的技术。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容