java 板


LINE

网页版前情提要 [误]: http://pt2club.blogspot.com/2009/11/gwt-java.html ______________________________________________________________________ 就像看电影会先看预告片、买 A 片会先看封面 学 GWT 之前,先知道 GWT 是什麽? 能做什麽? 再来决定要不要学,这十分重要 生命中有这麽多美好的事情(例如 H-Game [误]) 不知道为了什麽而学(无趣的)新技术 实在是浪费时间虚掷生命 所以,GWT 是什麽呢? 他是 Java 界的救星 他是 JavaScript 界的克星 更是网页开发界的啤儿绿茶... \囧/ (https://www.youtube.com/watch?v=j5zm22QZwFE
好好好,我言归正传就是了... [被殴飞] 〔GWT 是什麽?〕 是 Java、也是 JavaScript [扭] GWT 全名是 Google Web Toolkit 望文生义,是用在网页上头的工具组 以软体开发的角度,GWT 的核心是一个 Java compiler 处理 Java 程式码,但输出的不是 byte code 而是在 browser 上头执行的 JavaScript 因此,为了方便开发时的测试与除错 GWT 有 hosted mode,包括一个 JSP container 跟 browser 在 hosted mode 下,可以在 runtime 获得一些错误讯息与资讯 这些讯息是由 GWT 提供,会比较好读、贴近程式码 (如果你想倚赖 browser 或 FireBug 来 debug,忘了他们吧! XD) 也能点出一些 GWT 才会有的错误 例如在 client 端的程式用了 java.util.Hashtable 以软体架构的角度,GWT 的程式码 分为 client 端以及可有可无的 server 端 client 端的基础是 JSNI(JavaScript Native Interface) Java 无法涵盖 JavaScript 的部份 尤其是 browser 层级的操作 可以用 JSNI 的写法包成 Java 可呼叫的 method GWT 提供基本开发需要的 class 与相关机制 例如 UI componet、event handling、Http wrapper、JSON parser... 已经把 JSNI 包的差不多了 也许你写完一个 project 都还看不到 JSNI 的影子 server 端的部份,主要是 GWT RPC RPC 原文是 Remote Procedure Call 简单地说,这让你可以几乎毫无感觉地使用远端的 method/object 这里的「远端」当然是指 web server GWT RPC 把 HTTP 的传输过程包起来 要传递的资料,封装跟 parser 的手续也包起来 不管是在写 client 端还是 server 端 都不用烦恼这些繁文缛节(而且,都是用 Java 写!) Java Compiler 还帮你作 type checking 真是太棒了阿... 这麽好的东西我以後用不到怎麽办 <囧> 等等... 前头不是说:server 端是可有可无的吗? 是的,用 GWT RPC 有一个前提,server 必须是 JSP container 如果你是用 PHP 或是其他语言 又或着你想使用 JSON、XML 的方式来传递资料 那麽,GWT RPC 是可以完全不去理会的 〔GWT 能做什麽?〕 client 端? server 端? 傻傻的不用分清楚! 纯粹以 JavaScript 的角度来说 JavaScript 能做到的「效果」(不是语言特性 XD) 都能以 Java code 写出来 在某些情况,(大多是没有 library 帮你包好 囧>) 才可能需要写 JSNI 来做到底层控制 以网页开发的观点 GWT 能让你以传统 application 的思维来面对网页程式 以 browser 的角度来看,GWT 用 JavaScript 操作 DOM 来产生 & 控制所有的画面 (再罗唆一次,写的时候还是用 Java XD) 因此当画面改变时,页面不用切换,变数也就不用传递 所以,你不用思考 JavaScript 变数要怎麽传到下一个画面 也就不用烦恼到底要塞 session 还是跟着 URL 带着走 如果你用 GWT RPC,那更彻底 除了 callback 的写法比较怪了点 其余的部份,你很难分辨是在写 Java application 还是在写网页 object 内容的维持、与 server 的同步也不再是琐事 or 难事 对於会写 Java Application 的人而言 要跨进 web 开发的领域 不用把思路切换成一页一页的方式、 不用学一堆新技术新语言、 不太需要知道哪些是 server/client 处理 甚至感觉不到 stateless 以开发的角度,这不是很美妙的一件事情吗? 注:这里不讨论安全性的议题 (迷之声:因为有人不会 [指]) 〔GWT 不能做什麽?〕 不能让你写 JavaScript... [误] JavaScript 作不到的事情,GWT 也作不到 虽然这根本就像在说废话 XD 但是当你在撰写 client 端的程式时 得时时刻刻想起这句话 不然,写到忘我的时候 很顺手的就想读个 File、连个 DB Eclipse 这类的 IDE 也不会出现 compile 错误 (在 GWT compile 时还是会炸出错误讯息) 我研究 GWT 还不是很透彻、其他 JavaScript 的技术也没在碰 所以 GWT 这个架构不能做什麽? 我实在回答不出来 [殴飞] 这边只能提出一个「可能性」 就是 GWT 要整合其他 JavaScript 的技术 也许很困难 or 不可能? 之前要尝试用 jQuery 将 GWT 生出来的 TextArea 装上彩色模拟 scroll bar 就屡战屡败 Orz (这跟当时懵然无知也很有关系 [炸]) 换个角度想,用 GWT 是一定可以做出同样效果 只是目前可能还没有人写 or release 出来 跟 jQuery 比起来,base on GWT 的 UI component(包含 3rd party) 的确是很量少虚弱又天生难看(靠自己的化妆技术弥补) 但这只能算是暂时的缺点,不能算是「作不到的事情」 〔为甚麽要用 GWT〕 因为这是一种 Rock'n Roll 的 style! 如果你喜欢一个 project 同时有好多技术 如果你喜欢自己掌握 HTTP/HTML/JavaScript 的所有细节 或着,你讨厌 Swing 那类的 UI code 又甚至,你压根讨厌 Java 的一切 那麽,千万、千万不要碰 GWT 反过来说,如果你跟我差不多笨(好可怜阿 [炸]) 对 Java 死心塌地,写起来如吃饭睡觉一般自然 那麽,GWT 会是一个契机、一个救赎、一个捷径 好了,接下来就要开始进入正题了...... -- 侃侃长论鲜窒碍 众目睽睽无心颤 Blog:http://blog.psmonkey.org 茕居少聊常人事 杀头容易告白难 欢迎参观 Java 版(@ptt.cc) \囧/ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.231.99.11
1F:推 InitialShuk:所以说GWT 不行整合其他技术吗@@? 12/03 19:28
2F:→ PsMonkey:ㄜ... client 端的部份「可能」很困难 12/03 19:29
3F:→ PsMonkey:server side... Java 有的随便你用阿... \囧/ 12/03 19:30
4F:→ InitialShuk:连自行添加修改CSS javascript xml都不行喔@@ 12/03 19:30
5F:→ tkcn:CSS 当然可以, javascript 靠 JSNI 12/03 20:14
6F:→ PsMonkey:请用 GWT 的角度思考,基本上不用「加」 JavaScript 12/03 20:41
7F:→ TonyQ:只要有可以自己写html的区块 , 理论上都不会很困难啊. 12/04 17:25







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灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP