Struts2.x和Struts1.x的区别
2015-09-08 21:13
543 查看
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,但是可以访问它们
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,但是可以访问它们
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页面上的标签访问。
相关文章推荐
- org.osgi.framework.BundleException: Could not find bundle: org.eclipse.equinox.console错误解决办法
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- spring4-2-bean配置-7-Spring表达式语言SpEL
- Java基础——I/O处理
- 单例模式中为什么用枚举更好
- java反射机制 以及通过反射获得类的变量字段,方法,构造函数
- Java_jdbc 基础笔记之九 数据库连接 (查询Customer对象的方法)
- Eclipse unable to execute dex:GC overhead limit exceeded
- java性能优化之集合
- java下socket传图片
- hadoop之libhdfs配置及使用(hadoop1.2.1 + eclipse CDT 使用libhdfs)
- java性能优化之字符串
- Java配置环境变量
- JDK升级导致TLS证书认证失败
- 通过struts2.3.24实现登陆操作
- 【Java EE 学习 35 上】【strus2】【类型转换器】【struts2和Servlet API解耦】【国际化问题】【资源文件乱码问题已经解决】
- 大龄屌丝自学笔记--Java零基础到菜鸟--015
- eclipse 安装SVN插件 subversive
- 分享一个仿Eclipse配色的Android Studio主题配置文件
- Java 创建对象时的初始化过程