论坛首页 Java企业应用论坛

基于《关于Java开发不明白的一些问题》,探讨一下Struts1和Struts2

浏览 9986 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (16) :: 隐藏帖 (4)
作者 正文
   发表时间:2011-03-11  
紧急下潜 写道
nianien 写道
紧急下潜 写道
nianien 写道
紧急下潜 写道
我来说点
1. 我想知道楼主到底有几年开发经验?
   我的初步判断应该不会超过3年
2. 我想知道楼主到底做过多少个项目,从事过的每个项目的人员和代码量有多少?
   其他的我不好说,但是项目代码量我估计不会太大
3. 你之前说自己看过struts 1 2和spring的源码,但是你有没有理解到他们的原理那?
   我的初步判断是楼主没有

如果你知道spring这个框架是怎么诞生的,你就不会如此肤浅了。
再说一次,就冲你之前的那个帖子被评为良好,就看出来了javaeye真的没落的

那些用项目大小和代码量来衡量人的,真的很无语,我最鄙视~~~~~~~
哪一个框架的代码量不比项目的代码量小?但是哪个才是精华?你懂的~
有的人编了一辈子代码,只不过会用几个框架而已
有的人一行代码不写,照样能成为专家
写和读和思考和创造都是有区别的~~~~~~~~

说实话,你所说的这些我从你身上都没看出来,问个很简单问题
Q: 有两个方案1.servlet + javabean 方案2.Struts2或者其他类似框架
   如果你的业务逻辑从十几个数量级上升到上百个甚至上千个数量级的时候你应该选择哪个方案,为什么?

一般情况下,都是自己开发框架,纵观那些框架,本质上有什么区别?
业务逻辑再怎么上升,那些框架还不是只用一个Servlet搞定?你能给我举个例子,哪个不是?
动不动就呈XX数量级上升,业务逻辑的数据量级在你进行需求分析的时候就确定了

面对你的观点真的很无语,我就再问的直接一点,楼主写过unit test吗?会写unit test吗?

看你这话说的,我从接触java的第一天就写unit test了
而且,java根本就没有学习过,看看jdk api直接就用了
0 请登录后投票
   发表时间:2011-03-11  

哦,也难怪大多数人都笑而不语的飘过。因为大家都很明白楼主到底在什么位置上。

0 请登录后投票
   发表时间:2011-03-12  
peterwei 写道
nianien 写道
peterwei 写道
nianien 写道
action 的出现难道不是为了替代Servlet么?

框架替代servlet有什么不好吗?框架能省去你很多要做,要考虑的东西,让你专注于业务需求方面的东西。也许框架封装了很多技术性的东西,你可能会想这造成开发人员的贬值,但事实不是这样的。公司里面更值钱的是那些业务需求人员,是那些管理,架构和设计人员,而不是开发人员。
从高层的角度来说:有一套统一的东西(不管是开源还是自已实现的内部框架),可以形成规范,利于大家快速开发,也利于统一管理。底层的爱跑路就跑路,我不管,我再招,反正懂框架的人好招。
从个人的角度来说:反正是重复劳动,能省我力气最好,本来就是混口饭吃,省一事,赶紧回家看电视玩游戏多好。至于上进的同学,可以抽出更多的时间做自已感兴趣的事。ps:玩游戏也是上进的,哈哈。

呵呵,我从来没有做替代Servlet不好,我只是不想让有些人混淆概念,欺世盗名

我不是说Struts2的Action不好,它的每个请求对应每个Action实例,并不是像它宣传的那样,怎么怎么比单例模式好,
而是它不得不那样实现!

有人讲过Struts2不能用单例模式的原因么?不是它不想用,而是用不了~~

什么叫它不得不那样实现,什么用不了。用不用单例,在于用它的人想怎么样。
servlet以及struts1,在多线程环境下,对于成员变量的使用是不安全的。这也应该是struts2默认不是singleton,而是prototype的原因。一般struts2的实例都是spring容器管理,scope可以配成singleton或者prototype两种方式。不想多说了,我觉得你对框架了解得还不够深。

你说的那些我也懂,书上都是那么说的,你想想为什么Servlet不建议定义成员变量?和struts1中的action一个道理
而struts2中因为包含成员变量,这是与struts1的区别之一,为此,再将action声明为单例模式已然不合适了,
所以才针对每个请求实例化一次,原因就是你说的线程安全的问题,
如果用单例模式,必须使用threadlocal类
对于Struts2来说,可以包含成员变量才是它的根本,所以它放弃了单例模式
我说的行不行,是针对框架设计来说的,从技术的角度上讲当然没有什么不可能
你以为呢?
0 请登录后投票
   发表时间:2011-03-12  
话说,楼主不过是有感而发而已,大家互相评论一下,也无可厚非,神马都是浮云而已!
又说,对与不对,都不过是知识掌握的一个阶段而已,而且事事无常,对与错都是相对而已,没啥绝对的!
还说,等你想说的时候其实是你不懂的时候,等你懂的时候,其实也没有想说的了!
0 请登录后投票
   发表时间:2011-03-12  
huanglongje 写道
话说,楼主不过是有感而发而已,大家互相评论一下,也无可厚非,神马都是浮云而已!
又说,对与不对,都不过是知识掌握的一个阶段而已,而且事事无常,对与错都是相对而已,没啥绝对的!
还说,等你想说的时候其实是你不懂的时候,等你懂的时候,其实也没有想说的了!

深刻~~~~~~~~~~~
0 请登录后投票
   发表时间:2011-03-12  
事实上我在读阁下的《关于Java开发不明白的一些问题》就想回帖了。不过当时注册不到3天不能回复。呵呵。

你的观点我很支持。但有些地方有点偏激。
首先,在考虑使用什么框架或者工具的时候,我们应该首先考虑的是什么?是工具或者框架能给我们带来什么改变。
基于以上的理论,再来看struts。
struts的出现在早期给大家带来了框架理念。在满脑子都是jsp和servlet的编程理念中,它带来了一种新的思维方式,就是把所有页面都要做的事情,放在一起,然后找几个文件,把那些混乱的东西,做标注,方便寻找线索。在早期的页面与逻辑和资源调用混杂的编程环境下,这些东西是先进的。

然而对于当下的环境,是否struts还有他的意义呢?最少我个人并不看好struts。
你说的很对,我不看好struts的本身就是因为他把view也放在了自己的职权范围。服务器本身不仅仅是c和m,而且还包含了v的概念。除此之外,struts还给我们带来了什么?它本身试图从复杂混乱的页面编程中寻求一种统一的规范化的开发方式,但是结果却与初衷关系不大。要写页面?依旧还是要写页面,只不过增加了几个标签的扩展,有的时候这些标签反而导致很多人大脑混乱;需要在页面关系间建立脉络?结果确实混乱的配置文件;想要在混乱的调用之间把逻辑与页面本身分离?结果却是更加混乱的配置文件加上破碎的逻辑程序与破碎的页面集合。

总的来说,struts的初衷是从混乱之中试图寻找一种统一,来结束混乱的局面,让混乱成为有规律的东西。至少在混乱的环境下,他是成功的,并且做到了一些什么。

但是,认识与环境的发展是变化的。在当下的环境下,这样的模式本身已经是一种out的东西。相对来说我更加欣赏ajax的规划风格。额。。先不讨论技术上的东西。毕竟ajax我还没深入的研究。

从本质上来说,LZ提出的问题很值得欣赏。了到底工具和框架给我们带来了什么?基于此目的地学习,是有效的。比盲目的去追捧潮流,追捧迎合性面试要更加深入与现实。

在下也很厌烦随便一个什么公司的面试就要去问SSH一类的东西。使用SSH本身就证明了技术和理念的落后与食古不化。
0 请登录后投票
   发表时间:2011-03-12  
凡是了解MVC的莫不了解Struts
————————————————
胡说
0 请登录后投票
   发表时间:2011-03-12  
其实struts1的思想继承者不是struts2,而是spring mvc
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics