Struts2.x和Struts1.x的区别
2016-11-30 11:34
211 查看
Strust2.x不是新发布的新框架,而是另一个非常流行的框架WebWork基础上发展起来的。Struts2并没有继承Struts1的特点,但是它吸收了Struts1和WebWork两者的优势,因此是一个优秀的框架
Struts2和Struts1有很多不同点:
1,Action类的编写
在Struts1中,Action类一般是继承基类“org.apache.struts.action.Action”.而在Struts2中,Action类可以实现一个Action接口,也可以实现其他接口,也可以继承ActionSupport基类,甚至不需要实现任何接口,只编写execute函数即可
2,Action的运行模式
Struts1 中,Action是单态的,系统实例化一个对象来处理多个请求,为每个请求分配一个线程,在线程中运行execute函数。因此,在开发时需要需要特别小心,Action资源必须是线程安全的或者同步的。但是Strust2中,Action为每个请求产生一个实例,不会产生线程安全问题。
3,对Web容器的依赖
Struts1中,Action的execute函数中,传入Servlet API:HttpServletRequest和HttpServletResponse,使得测试依赖于Web容器,但是,Struts2中,可以不传入HttpServletRequest和HttpServletResponse,但是可以访问它们
[java] view
plain copy
print?
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();
4,对表单数据的封装
Struts1中,使用ActionForm来封装表单数据,所有的ActionForm必须继续org.apache.struts.action.ActionForm,有可能造成ActionForm类和VO类重复编码。但是,Struts2中,直接在Action中编写表单数据对应的属性,就是把Struts1中ActionForm和Action合二为一了,可以不用编写ActionForm,而这些属性又可以通过Web页面上的标签访问。
Struts2和Struts1有很多不同点:
1,Action类的编写
在Struts1中,Action类一般是继承基类“org.apache.struts.action.Action”.而在Struts2中,Action类可以实现一个Action接口,也可以实现其他接口,也可以继承ActionSupport基类,甚至不需要实现任何接口,只编写execute函数即可
2,Action的运行模式
Struts1 中,Action是单态的,系统实例化一个对象来处理多个请求,为每个请求分配一个线程,在线程中运行execute函数。因此,在开发时需要需要特别小心,Action资源必须是线程安全的或者同步的。但是Strust2中,Action为每个请求产生一个实例,不会产生线程安全问题。
3,对Web容器的依赖
Struts1中,Action的execute函数中,传入Servlet API:HttpServletRequest和HttpServletResponse,使得测试依赖于Web容器,但是,Struts2中,可以不传入HttpServletRequest和HttpServletResponse,但是可以访问它们
[java] view
plain copy
print?
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();
4,对表单数据的封装
Struts1中,使用ActionForm来封装表单数据,所有的ActionForm必须继续org.apache.struts.action.ActionForm,有可能造成ActionForm类和VO类重复编码。但是,Struts2中,直接在Action中编写表单数据对应的属性,就是把Struts1中ActionForm和Action合二为一了,可以不用编写ActionForm,而这些属性又可以通过Web页面上的标签访问。
相关文章推荐
- SpringMVC、Struts1和Struts2区别
- Struts2与Struts1的区别
- Java 面试题四 Struts1与Struts2之间的区别
- Struts2概述,Struts1的Struts2的区别
- struts2与struts1区别二
- struts2 FilterDispatcher 和 StrutsPrepareAndExecuteFilter 的区别
- Struts2中的FilterDispatcher和StrutsPrepareAndExecuteFilter的区别
- Struts2与Struts的区别
- Struts2和Struts1的主要区别(完整版)
- struts2的json-default和struts-default的区别
- Struts2中的FilterDispatcher和StrutsPrepareAndExecuteFilter的区别
- Struts与Struts2的区别
- struts的理解(struts1和struts2的区别)
- (转)Struts1和Struts2的区别和对比…
- 总结了Struts1与Struts2的11点区别
- struts1与struts2的区别
- Struts1.2与Struts2的区别
- struts2的json-default和struts-default的区别
- Struts2中的FilterDispatcher和StrutsPrepareAndExecuteFilter的区别
- struts1和struts2之间的区别