Structs2和Structs1的区别

Structs2和Structs1具有一些不同点,主要集中在以下几个方面:

       1,Action的编写

           在Structs1中,Action一般继承基类org.apache.structs.action.Action.而在Structs2中,Action类可以实现一个Action接口,也可以实现其他接口,也可以继承ActionSupport基类,甚至不需要实现任何接口,只编写execute函数即可。

       2,Action的运行模式

          Structs1中,Action是单态的,系统实例化一个对象来处理多个接口,为每一个请求分配一个线程,在该线程运行execute函数。因此,在开发时需要特别小心,Action资源必须是安全的或同步的。但是,Structs2中,Action为每一个请求都产生一个实例,不会产生线程安全问题。同时,系统又能及时回收垃圾资源,不会用废弃空间的问题。

       3,对Web容器的依赖

          Structs1中,Action的execute函数内,传入了Servlet API:HttpServletRequest和HttpServletResponse,使得测试必须依赖Web容器。但是,在Structs2可以不传入上面的连个参数,同时也可以访问他们,因此,Action不依赖容器,允许Action脱离容器单独被测试。

       4,对表单数据的封装

          Structs中,使用ActionForm来封装表单数据,所有的ActionForm必须继承org.apache.structs.action.ActionForm,有可能造成ActionForm类和VO类重复编码。但是,Struct2中,直接在Action中编写表单数据相对应的属性,可以不用编写ActionForm,而这些属性又可以通过Web页面上的标签访问。

         此外,在Structs2中,支持了一个功能更强大和灵活的表达式语言——Object Graph Notation Language(OGNL);在类型转换和校验上开发了更丰富的API。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值