已经会struts1.x了为何还要学习struts2呢一、首先,一个新版本的程序是为了解决老版本的一些bug而出世.一名
已经会struts1.x了为何还要学习struts2呢
一、首先,一个新版本的程序是为了解决老版本的一些bug而出世.一名话:没有最后的程序,只有更好的程序.这样的程序才会发展,而不会被淘汰出局. struts框架也是一样的. 我想,可能是struts1.x升级的过程中出现了瓶颈,有一些存在的问题很难得到解决,在这个时候,他们发现WebWork框架的总体设计思想非常好,并且他们发现,使用WebWork框架的思想正好可以很容易地解决struts1.x存在的问题.由于WebWork在推广方面做得不够好,于是两个社区决定把WebWork框架与struts1.x框架合并,简称为struts2.之所以struts2与struts1.x的区别比较大,就是因为struts2大部分的实现都是依靠WebWork框架里面的东西的.
?
?
二、struts2框架的优点及解决strus1.x存在的问题.
???? 2.1、在程序设计思想上看Struts2.
??????????? Struts2并没有像struts1那样跟Servlet API和struts API有着紧密的耦合,在没有Struts2之前,基于struts1.x框架来解决这个问题几乎是不太可能的,我们都知道,在struts1.x里编写一个简单的Action类,是一定继承一个struts1.x 提供的类的(如继承Action类或DispatchAction类),这样就完全与struts API耦合在一起(可能在struts1.x当初开始设计的时候并没有考虑到这个问题,因此问题一直延续下去,问题存在得越久,发现得越晚,当要解决的时候就会越难.最后导致struts1.x出现瓶颈),如下就struts1.x定义的一个Action类:
这个带来什么好处呢,目前本人还不太明确。
能联想到 cache 堆栈 但具体的呢? 疑惑中 18 楼 76052186 2009-12-24 tapestry 5.1更好用,谁用谁知道。 19 楼 mwmw 2009-12-24 工具而已! 20 楼 cs207 2009-12-24 2.7、Struts2是线程安全的.当请求转入Struts 2框架处理时会先经过一系列的拦截器,然后再到Action。与Struts1不同的是,Struts2对用户的每一次请求都会创建一个Action,所以Struts2中的Action是线程安全的.也正因为如此,Struts2的Action可以有自己的成员变量。同时拥有了Struts1.x的Form Bean的功能.Form Bean的存在在业界里有一些争议,认为Form Bean是一个很多余的角色,跟java实体类有些重复.因此在Struts2里,已经废弃了.
------------------ 我最关心的问题----线程。。 得去研究研究 21 楼 elvea 2009-12-24 线程安全和非线程安全有那么大区别吗?我倒觉得没有。只是局部变量和成员变量的问题 22 楼 alkj 2009-12-24 晕倒!我在上一个公司和现在的公司都用了快三年Struts2了啊!这个好象不是新鲜的东西了吧?不过我个人倒是建议在使用Spring的项目中抛弃任何的第三方MVC框架,因为Spring MVC更加灵活,且与Spring浑然天成哦!哈! 23 楼 todn211 2009-12-24 哥支持你的观点! 24 楼 berlou 2009-12-24 Spring MVC确实已经满足了很多需求。
现在国内很多公司还是拥抱Struts 1.x很大程度上是因为客户还在用JDK1.4吧?
尤其用IBM产品的客户。
还有, 建议关注Seam Framework, JSF + Seam在Java web这块我是非常看好的。
还有Struts线程安全问题, 拜托不要再拿来说事了, 因为即使是Struts 1.x, 与Spring结合后, 通过Spring托管也可以是prototype的, 而不是singleton。
25 楼 javagui 2009-12-24 http读取参数都是靠键-值对?看来是web开发太久了... ... 26 楼 mysyche 2009-12-24 协议归协议,框架归框架!
struts2 确实比struts1 好用,这是实事。如果不好,相信只会有struts 也不会有1和2 之分了。 27 楼 KimHo 2009-12-24 写得很好,看来作者对mvc理解比较透彻啊 28 楼 bluethink 2009-12-25 很喜欢Struts2,比Struts1好多了 29 楼 JArcher 2009-12-25 工具而已,解决问题是关键。。。
ps..spring mvc(2.5版采用annotation配置的)..不错。。开发效率来说,比struts1好 30 楼 donglangjohn 2009-12-25 name=donglangjohn&password=1111111&x=0&y=0
在Live HTTP headers 里截取的 Content 部分
现在servlet都是用于http的,getPara 不都是为了这些参数么?!
各种框架的action里都变相的用pojo来接受这些值,尽力的拼成pojo给action来用的吧
因此产生了一些特殊的pojo(Struts2的pojo就action,struts1有actionform)
都是变相的胁迫你按照他们的要求写action,struts2要好一点,易于测试。 31 楼 kuchaguangjie 2009-12-25 无聊...
你买了 奔腾 为何要换 酷睿 32 楼 半边云 2009-12-31 软件行业之所以发展这么快,就不在不断的更新啊,苦的是学员们啊,还有学校,学的太慢,但行业发展的太宽,究其实就是一个教育问题了啊 33 楼 w0ei2010 2010-01-04 我只会Struts1看来还是要看看struts2才行啊。。。。