必威体育Betway必威体育官网
当前位置:首页 > IT技术

Structs2和Structs1的区别

时间:2019-06-08 10:43:11来源:IT技术作者:seo实验室小编阅读:89次「手机版」
 

structs

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。

相关阅读

分享到:

栏目导航

推荐阅读

热门阅读