java 板


LINE

※ 引述《PsMonkey (痞子军团团长)》之铭言: : ==站内信件= : 本篇 Thread 符合站内信件条款 : 还请 CPython 注意这件事情... : 不然,cplusplus 可以举发你... XDXD 第一次在 PTT的连线板发文,一时不查,还请见谅 : ※ 引述《CPython (吸的大蟒蛇)》之铭言: : : ㄟ..... 单一语言的纯净性吧,某些公司兼持整间公司只用一种语言 : : 来开发所有程式,写business logic用Java/EJB,写资料库用JDBC, : : 写UI用Java/Swing,能用Java的就用Java。 : : 写了一阵子的J2EE,最近最大的愿望就是能脱离J2EE的魔掌,尤其是 : : 在写网页上,Struts这种勉勉强强能算是 framework的东西,竟是整 : : 个Java阵营的最大公约数,虽不满意,也只能用下去了 :( : 我想请问一下上面这段的几个... 恩... 问题点... : 一个是 "Struts 这种勉勉强强能算是 framework的东西" : 我对 Struts 不熟 : 对 framework 的定义... 恩... 也有点朦胧 T__T : 但是听到这句话,总觉得... : 怎麽跟其他的文章 or 书籍讲的不一样? 一个好的Web Framework倒底该提供那些基本元素,让程式设计师能够很快 的开发一个网站,不用从新再造轮子呢? 1. 网页的Template,能够把网页区分成四大块Side bar, Menu Bar, Content and Footer 2. 基本的互动元件,使用者不用再自行开发javascript元件,能够动态检 查使用者的输入资料是否型态正确。 3. URL dispatch. Model 2 4. 使用者管理、偏好管理 ---------- 再来看看 Struts的基本元件 1. ActionServlet & Action : Struts的原始目地是要达到 Model-View-Controller 把网页的流程从Input Form中抽离出来,由统一的Controller来管理流程, 我不否认Struts在这一点上做的很好,但这也是Struts为一做到且做的好的 功能。 http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html 2. Validator : Servlet/Struts 在接受使用者输入时都只接受 String , 我想用Java写过网页的人一定都写过无数次的 try{ int amount = Integer.parseInt(request.getParameter("amount")); if(amount < 0) throws new NumberFormatException("amount < 0 !!"); }catch(NumberFormatException e){ request.getRequestDispatcher(ERROR_PAGE).dispatch(request,response) } Validator 是设计来帮使用者管理这些code的,在把 input value传给 Action 处理前,先把非法的值挑出来,若是都是合法的数值,再送往Action处理。 很不幸的是,Validator只是让你把这些Code整理在一起,并没有减少Coding 的需求,此外 Validator 这一层是非必要性的,也就是说数值可以不经检查 就送往Action。这一点当你是写元件给自己用时是可以接受的,但是若你是 想开发元件给别人用,你不能保证他人会记得把值先处理过再送往Action。 所以最後就变成 Validator先检查过一次、Action那层再检查一次、若是後 端还有 Hibernate/JDO/EJB等,再检查一遍,一段Code写三次不是大问题, 後来要再来改需求才会出人命。 3. Taglib 虽然贵为最热们的 Java Framework ,Struts的Taglib只能说是 贫乏、难用、underdocument ,让我浪费了无数的时间才搞定,若是时间能 再来过,我会选用JSTL Struts就只提供这三大类了,剩下的使用者登录、Session/Cookie management 网业的Layout管理都要自己做。 ------- 这样看起来好像不算太差对吧,Struts的一切对我也曾经是美好的,不过这 一切都停在我看到zope之前。(ps:我对zope的了解还极度粗浅,只看过两周 的文件) 相对於Struts只提供了基本、有弹性的架构,Zope等其他的 Framework采取 了不同的角度来看问题。网页的格式可以自由发挥,但是多数的网站( > 80% ) 都是由Title, Menu Bar, Side bar, Content, Footer五块组成,多数要求 使用者登录,WebForum, Wiki, Blog更是逐渐变成必备的,既然使用者及程 式设计师都有这种需求,那为什麽 Framework不就先帮你做好呢? 对Zope来说,写一个有Form的网页流程跟 Struts 大不相同。 1. 先定义 Form Data ,把 Variable Name, Type, Value Range, Title, Description写好 2. 再来写处理 Form 的逻辑( Validator这块Zope帮你做掉了 ) 3. 最後是直接透过Zope产生网页,若是你只需要简单的网页,是不用自己 写View的这块。 多说无意,看了这个影片就会了解http://oodt.jpl.nasa.gov/better-web-app.mov : 再来是" Java 阵营的最大公约数" 这句话 : 也有点不知何解? : Struts 也不是 Java 官方标准... : 说集各家之大成? 好像也没有... @__@ : 不知道 CPython 能不能详述一二? Struts虽不是标准,但是後头有众多团队在推,Apache Software Foundation 就不用提了, IBM Websphere也推荐 Struts , BEA Weblogic portal也是提 供极度类似Struts的架构。在三年多前 IBM & BEA 可是连手抢下六成以上的 商用市场,在这种状况下,Struts自然被拱成非正式的标准,也是唯一有 IDE 支源的Java Web Framework,光这一点,就把其它的 Framework打趴了。 再者,其他的 Framework在文件数上跟 Struts 没得比, Bug上也差了一节, 我曾用过 Cocoon2一次,我只能说苦不堪言,三个月後宣告放弃。所以说Struts 是Java平台上没有选择的选择。 -- 时间很晚(2am),写的有点零碎,还请见谅 ※ 编辑: CPython 来自: 24.5.191.38 (04/20 17:17) ※ 编辑: CPython 来自: 24.5.191.38 (04/20 17:17)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP