Struts2的优点与Struts1的区别

[导读]有状态就是有数据存储功能,比如购物车,买一件东西放进去,可以再次购买或者删减。 无状态就是一次操作,不能保存数据。

单实例与多实例  
有状态就是有数据存储功能,比如购物车,买一件东西放进去,可以再次购买或者删减。  
无状态就是一次操作,不能保存数据。  

有状态对象,就是有成员属性的对象,可以保存数据,是非线程安全的。  
无状态对象,就是没有成员属性的对象.不能保存数据,是线程安全的。  

Struts2 的Action是有状态的,是非线程安全的,所以是多实例的。  
Struts1的Action是无状态的,是线程安全的,所以可以单实例。  

无侵入式设计  
Struts2没有像Struts1那样跟Servlet API有着紧密的耦合,Struts2的应用可以不依赖于Servlet API和Struts API。Struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计。  

使用OGNL表达式语言  
OGNL提供了在Struts2里访问各种作用域中的数据的简单方式,你可以方便的获取Request,Attribute,Application,Session,Parameters中的数据。  

使用了拦截器  
Struts2 的拦截器是一个Action级别的AOP,Struts2中的许多特性都是通过拦截器来实现的,例如异常处理,文件上传,验证等。拦截器是可配置与重用的,可以将一些通用的功能如:登录验证,权限验证等置于拦截器中以完成一些Java Web项目中比较通用的功能。在我实现的的一Web项目中,就是使用Struts2的拦截器来完成了系统中的权限验证功能。  

全局结果与声明式异常  
为应用程序添加全局的Result,和在配置文件中对异常进行处理,这样当处理过程中出现指定异常时,可以跳转到特定页面,这一功能十分实用。  

方便的类型转换  
Struts2提供了类型转换器,可以把特殊的请求参数转换成需要的的类型。Struts1中如果实现同样的功能,必须向Struts1的底层实现BeanUtil注册类型转换器。  

其它  

Struts2支持多种表现层技术,如JSP,freeMarker,Velocity等。  
Struts2的输入校验可以对指定方法进行校验,解决了Struts1长久这痛。  
Struts2提供了全局范围、包范围、Action范围的国际资源文件管理实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值