Struts2与Struts1的区别

本文对比了Struts1和Struts2在Action实现类、线程模式、Servlet依赖、单元测试、请求参数封装及表达式语言等方面的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1、在Action实现类方面:Struts1要求Action类继承一个抽象基类,即基于抽象类编程,而    非面向接口编程;Struts2Action类可以实现一个Action接口,也可实现其他接口,即

   Action接口不是必须实现的。

2、线程模式方面:StrutsAction是单例模式并且是线程安全的,即只有一个Action来处    理所有的请求;Strut2Action对象为每一个请求产生一个实例,因此没有线程安全的 

     问题。

3、Servlet依赖方面:Struts1Action依赖于Servlet API,因为Struts1Actionexecute方法中有HttpServletRequestHttpServletResponse参数;Struts2Action不在

   依Servlet API ,即允许Action脱离WEB容器允许,从而降低了Action的测试难度。

4、单元测试方面:测试Struts1Action时由于execute方法依赖于Servlet API,这使得Action的测试依赖于WEB容器(若借助于第三方扩展:Struts TestCase也可以使其不依赖于

   容器);Struts2Action可以通过初始化、设置属性、调用方法来测试。

5、请求参数的封装:Struts1使用ActionFrom对象来封装请求参数,所有的ActionFrom须继承一个基类:ActionFromStruts2直接使用Action的属性来封装用户请求参数

6、表达式语言:Struts1整合了JSTLStruts2既可使用JSTL,也可以使用其直接的表达式语言:OGNL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值