VC/MFC
VB
Delphi
C++ Builder
C/C++
Java
.NET技术
MS-SQL Server
PowerBuilder
DB2
Oracle
Web 开发
Linux/Unix社区
硬件/嵌入开发
移动平台
您的位置:
程序门
->
java
-> j2se / 基础类
struts 的优越性
[
收藏此页
] [
打印本页
]选择字色:
默认
灰色
红色
黄色
绿色
橙色
紫色
蓝色
褐色
墨绿
深蓝
赭石
粉绿
淡绿
黄灰
翠绿
综红
砖红
淡蓝
暗红
玫瑰红
紫红
桔黄
军黄
烟灰
深灰
灰蓝
背景色:
默认
黑色
红色
黄色
绿色
橙色
紫色
蓝色
褐色
墨绿
深蓝
赭石
粉绿
淡绿
黄灰
翠绿
综红
砖红
淡蓝
暗红
玫瑰红
紫红
桔黄
军黄
烟灰
深灰
灰蓝
字体:[
大
][
中
][
小
]
struts 的优越性
[已结贴,结贴人:asdfcvzxa]
发表于:
2008-01-11 08:49:24
楼主
在使用 struts 的过程中越来越感觉
不
到它的意义!
用 struts 所做的一切,完全可以用 filter + servlet + jsp + bean 来代替!servlet 用来控制业务流程jsp 用来显示页面 bean 进行业务逻辑 filter 进行验证!
在用 struts 写代码的过程中,如果把 action 做为控制层来使用,由它去调用某个业务 bean 实现业务逻辑,那么感觉就和 filter + servlet + jsp + bean 一样。
哪位朋友能告之, struts 比 filter + servlet + jsp + bean 有什么它所独有的长处吗?
还有就是 actionform 这个东西,它是用来封装表单的,可是我完全可以用 request.getparameter("..");来获取表单中的内容啊,它又有什么自己的独到之处呢?
发表于:
2008-01-11 09:06:34
1
楼 得分:
2
主要是它的mvc模式吧,再就是struts里面附带了一些东西。
发表于:
2008-01-11 09:07:01
2
楼 得分:
0
sf
发表于:
2008-01-11 09:17:52
3
楼 得分:
5
个人理解为从功能上说没任何区别,struts分解开来本身就是这几样东西,只是集成在一起不用写很多代码和实现mvc,也就是jsp与javabean还有servlet的联系通过配置文件web.xml和struts-config.xml联系,从而实现了松耦合,使得他们更加独立,就像java类一样,封装起来.
发表于:
2008-01-11 09:22:05
4
楼 得分:
8
struts也是由最基本的技术组成,就跟我们使用jdbc一样,有人可以说,我用反射做映射,照样可以实现sql-> 对象封装,没什么了不起的嘛~
以前肯定也有很多人实现类似于struts这样的框架,如果楼主早出生几年,也许也是打算用这些基本技术搭建自己的框架的人。
在这些框架中,有很多被淘汰,剩下的自然是好的了,至于它为什么好,你可以尝试完成两个相同的项目,一个采用基本技术,一个采用struts,做一下比较。
struts会的人多,节省培训成本,在大项目中,开发方便快捷,小孩过家家的项目用什么就无所谓了。
ps:普通开发你得用request.getparameter("..");来获取变量的值,而actionform可以帮助你完成这些,你一句话都不用写;如果一个页面有500字段,那actionform作用就大大的喽~
发表于:
2008-01-11 09:37:19
5
楼 得分:
20
actionform以我看来,严格地划分应该属于表示层的东西,在这里面除了获得
一些表单数据之外,还有一点就是可以对表单中输入的值进行服务端验证。从而
达到分而治之的原则。
当然了要使用filter+sevlet也未偿不可,只是struts进行了更高层次的封装,
让开发变得更为方便、快捷一些。比如资源文件配置、页面导向配置,再者使用
struts的一些标签也更为方便。
使用filter+servlet对于比较大的应用来说,得在web.xml配上一大堆的东西
像一个filter、servlet要配两个元素,如果采用filter来验证表单数据的话
也是相当繁锁的。一般来说filter用于配置一些编码、权限等每个请求都必须做
的事情,等于在其中夹一层,就像aop那种。
现在开发过程中都强调应用的可配置化,也就是把一些今后可能会变动的参数置
于配置文件中,而不是写死在代码里,采用filter+servlet写的话也可以进行
参数配置,但这些事情都必须由你自己来完成,而这些都是一些mvc框架内部自
行做掉的事情。
采用filter+servlet的话做的事情,只不过是像struts的那些mvc框架底层做
的事情,就有点重复发明轮子了。
发表于:
2008-01-11 09:44:04
6
楼 得分:
0
当然了,使用框架也有一定的缺点,就是效率远不及采用传统的实现。
比如:采用struts要比采用servlet慢,采用hibernate要比采用jdbc慢。。。
因为这些框架为了达到可配置化的层次,基本上都采用反射机制,而采用
反射生成对象的效率要比直接new生成对象效率的速度慢了成百上千倍。
尽管这样,看在他们都提供了很多优秀功能、让开发速度提高的基础上牺
牲一些效率是比较值得的。
发表于:
2008-01-11 09:45:33
7
楼 得分:
0
4楼朋友,感谢你的回答,你提到 “如果一个页面有500字段,那actionform作用就大大的喽 ”
但如果一个页面有 500 个字段,我如果使用 actionform 的话能有哪些方便呢?不也要写很多 actionform.get..(); 来获取页面中的字段吗?
方便的也只是:原来需要把500个字段名当作参数写出,而用了 actionform 的话,就一个点,就能点出一个get方法来来获取这个字段吧?再有就是:如果希望用户提交的表单在这 session 范围内有效的话,才可体现其价值吧?
不好意思,我不是抬杠,只是想知道这东西到底有多大的意义!
发表于:
2008-01-11 09:46:18
8
楼 得分:
0
楼主,这说明你进步了!本来struts也没有什么嘛。改天自己实现一个,只要不是完成jasper那样的东西,都没有啥难度。
接下来看看rest。研究一下中间件怎么更好的支持web2.0。
发表于:
2008-01-11 10:01:33
9
楼 得分:
0
struts1中之所以有actionform,可能是由于它是古老的mvc框架之一吧,
是首先吃螃蟹的,由于没有什么可以借鉴参考的,在日后逐渐地缺陷也就产
生了。
在struts2中完全抛弃了actionform,采用了webwork的架构,使得框架与
容器间的耦合度再下降了一层。
发表于:
2008-01-11 10:05:20
10
楼 得分:
0
to 火龙果
谢谢你的回复!
首先说,我还不能很好的应用 struts ?
说到 struts 的验证功能!我没有去使用的太多,可能是先入为主吧,用 filter 进行验证已经习惯了!
问一句: struts 中的验证很强大吗?验证功能很全面吗?是不是只能进行一些类似 “不能为空” “字符串长度的约束” 等等基础的验证呢?如果我希望验证字符串的内容:例如字符串中不能有特殊字符。那么 struts 中的验证机制,还能进行验证吗?我只是举这个例子。我的意思是 struts 中的验证操作有没有不能验证的东西呢?
发表于:
2008-01-11 10:09:43
11
楼 得分:
0
8楼 一看你就只到你是高人,你那些想法很独特!很敢去想啊!相信你在学习中都不会有任何疑问吧?啊?高人?
发表于:
2008-01-11 10:18:05
12
楼 得分:
0
唉,struts1的东西,用着用着,你就想吐,
实在想用,最好自己改造一下。
发表于:
2008-01-11 10:22:32
13
楼 得分:
5
j2ee,或者说javaee,已经走了很久了,里面有些东西不太符合今天的web开发了,为什么ror会异军突起呢?
因为ror是个更好的支持rest思想的架构,而并不只是因为它简单。
老实讲,ruby的语法复杂性是很高的,比java难理解。用ruby的人往往是有过多年开发经验的人。
其实我不会j2ee的,我就是跟着wingc实现过一个最简单的servlet容器而已,但是我感觉这个跟cgi时代的思想还是很接近的。
现在在ibm内,一部分的web开发依然使用j2ee的中间件,但是并不写jsp和servlet了。而是转向rest思想。
servlet仅仅起到一个转发的作用,而上面可能采用基于osgi的bundle实现的一些service来进行服务。
中间件应该往这个方向去努力。
发表于:
2008-01-11 10:29:16
14
楼 得分:
0
哦,有本电子书,叫osgi实战什么的,可以看看osgi怎么和spring整合到一起。然后就容易让这方面想了。
我只会想,不会做,我连css怎么弄都不会。
发表于:
2008-01-11 10:49:40
15
楼 得分:
0
我的意思并不是说struts是万能,只是将一些底层的东西做了一定的封装罢了。
让开发者不需要了解其更多的底层实现,让应用更易于维护、开发的效率更一些。
以我看来,框架本身就没有好坏之分,只要能适合应用的就是最好的。
我前面也提到过,由于struts自身设计上的缺陷,会导致某些部分较为复杂,且
与servlet容器紧密地耦合在一起了,但是它也在不断地改进之中,不断汲取其他
优秀框架的经验。
它肯定不是最优秀的,但它是最经典的。
over
发表于:
2008-01-11 11:04:06
16
楼 得分:
0
啊!谢了!
我是 java 的初学者!所以可能会有很多不入流的想法与疑问!感谢大家的热心指教!
to 14 楼的朋友,觉得你应该改名,“甘草”不合适!“仙人掌”更贴切
结贴了!再次感谢大家!
发表于:
2008-01-11 11:06:32
17
楼 得分:
0
。。。 。。。
下一篇:
谁知道用java怎么实现yahoo finance里边的那种效果??
上一篇:
一个人的权限只有24小时,在程序里面怎么实现?
相关文章
澄清 java 的接口与继承机制
如何用installanywhere在setup时进行建库和注册d...
有谁能给我一个,表单选择时间的
big java 和sun java有什么不同?...
我做了一个网站用struts+hibernate请大家来顶
急!在线等,各位帮忙
有什么办法提高网页显示数据集合的速度(比如数据...
两个系统共用session的问题?
关于◎suppresswarnings("unchecked")
rmi?
我在tomcat6下运行struts2.0.6死活不成??
关于list的add方法与addall方法的区别
weblogic+jbuilder+mysql开发ejb财务系统遇到的中...
session.save()保存不了数据,不知原因!!
搞定的50分送上, 其余分按顶者人头分
udp电脑发手机模拟器与真机问题
我想实现web迅雷的这个小功能,哪位能提供一点思...
请问这题目的正确答案为何?
一个关于jtree 的问题
j2ee程序运行一段时间后,就不动了.那是怎么回事?...
其他资讯
windows不同的外观下,显示的界面效果差别很大。...
hibernate save问题.
java代码编写的30条建议!
请教高手一个jstl的错误,谢谢
问一个正规表达式中的matcher的问题
strutstestcase调试spring出错了。救命啊。
求大侠帮我给这个c++程序改成java程序 (100分重...
部署了两个应用,如何让两个应用使用各自的jar包...
动态加载jsp页面
linux apache resin mysql ...
一个面试问题?
关于画图的几个问题
java 泛型 问题,请各位热心人帮忙,谢...
求思路:要把随机生成的数字保存起来,要求不能有重...
string to time 该怎么做
为什么我通过servlet向网页out.print()一串字符...
我新的blog,里面有很多技术文章,有需要的可以问...
java中通过dom操作xml文档
根据某年某月某周得到一个具体的时间范围!
有偿转让java即时通信工具源程序及设计文档
快速检索
分类导航标签a
Web 开发非技术区
Web 开发XML/SOAP
DelphiGAME
DB2内容管理
Oracle高级技术
Windows专区网络管理配置和工具使用
Web 开发应用服务器
VC/MFCATL/ActiveX/COM
Windows专区网络管理配置和工具使用
其他开发语言其他开发语言
MS-SQL Server应用实例
产品/厂家山西.NET俱乐部社区
MS-SQL Server应用实例
Web 开发应用服务器
移动平台BREW技术论坛
最新资讯
直接定位的问题,进来看看
关于update
敬望指教:关于textbox的一个问题。
怎么才能找到一个好的服务器公司,哪家的服务器好...
动态sql如何得到返回值的问题!始终无法解决,在...
设置电脑分辨率
请问这种怎么实现
在代码中更改access数据库中列的属性
vc下word编程,保存word文档的问题
如何防止恶意刷新页面!!
想学习visual studio 2005下用vc++操作...
能否控制两个<p>之间的间隔?
我居然没有中病毒
多表联合查询的问题 高手请看!!!在线&nb...
多线程同时下载5个文件时,下载的那段代码里使用...
谁能提供一些关于动态连接库的一些信息啊
阿弥陀佛最后60分
喜欢中国足球的理由?
北京手游公司招聘服务器客户端程序员
hibernate 里 要先group by ...
asp.net怎么写一个xml文件啊?
如何实现两个硬盘的电源隔离功能?
求助,错误信息: fatal error l...
vb 获取数据到vsflexgrid中,对其中的部分数...
有点难度的一个问题~~~~~
.net2003自动加“amp;”,烦啊~
还有这个原来的代码是什么啊?谢谢
[求助] 对用路由器共享上网的比较熟悉的来帮...
国内著名it上市集团招募ste、sde、pm,地点:上海...
sql错误7405
怎样实现筛选日志信息保存到新库?
pb treeview
学it
直接弹出保存图片的对话框?
能否用sqldataadapter.update() 添加数据
个人网站公测
跑求:急死了:我想得到一个表值不是最大记录&nbs...
[真诚求助]局域网内连接sql服务器
请问有那些软件测试比较好的公司?
服务器问题????
热门点击
急!求教用pro*c语言对oracle中表数据进行操作!!!...
asp.net 执行带多个参数的存储过程
兄弟们,只剩最后几分了,问个问题!
!!!! data access error
关于ultraedit的使用问题
求-《thingking in java 2e》书后...
构造函数的执行顺序
有一个小程序,想外包给熟悉java二维的朋友
谁有autowbpy.dll,着急
为何我发的帖子只可给0分
如何在jsp页面中实现每个链接的点击总量
笔试遇到的一道改错题
免试直读武大smba上海班
请教类静态成员的问题,各位指导下我啊
访问数据库的速度
现在最先进的驱动级模拟鼠标(键盘)输入技术是什...
急!求sql语句,
求一个正则....
绑定数据的时间格式如何修改?
用tao_idl 编译cosnaming.idl 无法定位...
我好傻
c#里面[serializableattitude]是什么意思?
在非域控制器上安装exchange 2003 时无...
float的7位有效数字究竟是何意?
vs2005怎样样进行javascript调试
windows2000server 使用ghost镜像恢复出现的...
一起创业吧...........上海诚邀合伙人
提问!关于十六进制的问题?
面试c/c++问题汇总
局部变量与实参的关系
在java中使用安全证书的问题
怎么用ie打开vb工程
!!!!!!十万火急:nvarchar转换为varchar后...
熟悉98,95系统的高手,“管理工具”--〉“odbc”...
delphi调用dos命令更改网卡ip参数,以及执行dos命...
【招聘】上海维西网络科技有限公司(verycd)
用settimer进行定时,无法进入回调函数中
为什么我的blend 点"文件"--"新建项目"&nbs...
日本日期的和历西历互相转换
ado中m_recordset->open失败(拜托看一下)