java 板


LINE

※ 引述《tkcn (小安)》之銘言: : 話先說在前頭, : 我對寫網頁不太在行, : 所以這篇文章可能會存在一些嚴重的錯誤, : 還請各位多多包涵。 話也說在前面 什麼「豬屎被疼」的東西我不懂(正確來說,我啥都不懂) 以下請當作拋磚引玉的無學問土砲想法 : --- : 這篇文章主要是想問, : 一些在網頁上常見的架構如何在 GWT 上實現, : 像是 login page, : 還有讓每個頁面都有共同的 header, bottom。 如果純粹靜態的東西(例如:Logo、聯絡資訊) 可以直接刻在 html 裡頭 如果是動態產生的東西,那... 就用 Java(OO)的角度去想吧 : 我照著官方的 tutorial 做完以後, : 試著想要寫一個 login page, : 卻發現非常的.... 呃~ 棘手 XD : 我甚至不知道我應該用純 GWT 去寫, : 還是寫一個 JSP 做登入,登入完成後再轉給 GWT module。 : 如果用純 GWT 去寫, : 跳轉頁面的部份又改如何做, 純粹講「跳轉頁面」是 Window.open("_self", A_URL, ""); 順便廣告:http://sites.psmonkey.org/pt2wiki/GWT : 應該要用單一 module? 還是多個 module? : 直到後來我看了一些討論, ( http://tinyurl.com/yd5eud6 ) : "GWT highly recommends using a single module." : "Typically, there is only a single HTML page, : and different "screens" are manipulated on the client side." : OK, 所以我應該用 GWT 做一個登入的 "screen", : 然後在 EntryPoint 做一個 RPC 呼叫, : 去判斷使用者的 cookie 是否過期, : 如果過期了就顯示 login screen, : 沒過期就顯示登入後的畫面。 : 於是我寫了一個類似這樣的東西: : http://snipt.net/javagner : It's work! 但是,我如何知道這樣是對的? : 事實上,不管是一個 module、兩個 module,還是滲了 JSP, : 我認為都可以做出相同的功能, : 但哪一個方式是我真正應該做的呢? 抱歉,其實我英文很爛、程式也不太行 所以那個討論跟程式碼我都沒有看 [毆飛] qrtt1 給的第二個連結看不懂所以沒看 [淚奔] 我只能說,自從我被迫看了幾個月的 ASP 也寫了幾個月的 PHP、trace 了一些 CodeIgniter 的 code 當然還有 trace 一些不太大,但是用了也沒出事的 project 我會有種錯覺,就是: 考慮這種問題,簡直是屁..... 股很堅固可以好好久坐的人該研究的事情 (o 版主別打我) 這種事情哪有什麼對不對,只有出不出包 在出不出包之前要先考慮寫不寫的出來.... [遠目] 嗯... 都說是錯覺了... 所以讓我們回到主題上 [毆飛] 如果讓我來想 login 這個問題 基本上我一定二話不說,把 login 這檔子事情歸在 GWT 範圍以外 事實上,應該可以很合理懷疑 google 是這樣子作 login 的 (至少網址改變了) (迷之聲:你是不會用 Firebug 之類的東西 trace 一下喔?) (答:ㄜ... 不會用 [毆飛]) 這可能跟 SSO/HTTPS 的議題有關? 不過我都沒碰過,所以純屬胡說八道 [再度毆飛] 我想要抽出去到 GWT 以外的地方 主要是覺得,這跟 GWT 拿手 or 要解決的目標無關 如果對於 GWT 而言,只是要 server 給個 true/false 實質上跟實際的程式內容理論上無關 而抽出去用原始的方法作,也沒什麼不好 讓 GWT 的部份更單純專一,感覺不錯 : 這是我發這一篇文的主要目的。 : 接下來就就真的要提出疑問了: : 1. 用上面所提的登入方式, : 實際運作起來會是: : (1) client 端下載了 EntryPoint : (2) 利用 AJAX 檢查是否有登入 : (3) Server 端回傳登入結果 : (4) Client 端顯示對應頁面 : 跟其他的網頁語言直接在 Server 端檢查完後, : 便直接將對應畫面輸出給 Client 端的作法不同。 : 另外,據我剛才利用 firebug 觀察的結果, : 步驟 (3) 傳回來的結果並沒有包含 步驟 (4) 顯示的頁面, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 這句話對我來說,有功能切割上的毛病 我會一個 RPC 決定 login 與否 然後才是一個 RPC 來真正 fetch 資料 : 也就是說,我在步驟 (1) 時, : 已經抓取了登入成功和失敗時,欲顯示的頁面了, ^^^^^^^^^^^^^^^^? : 這樣,會不會有安全性的問題? : ps. 我個人是覺得在寫法正確下,不至於有問題,但還是提出來討論看看 :P 理論上一定有 我目前還沒看到(也可以說沒關心 & 沒能力)GWT 的安全性問題 但是,反過來講 真正關鍵的資料內容還是從 server 傳過來 js 裡頭只是決定「畫面格式」跟「資料格式」 那麼,就算針對 js 解讀成功,還是沒辦法拿到真正關鍵的資料 : 2. 上面的做法只能在進入 EntryPoint 時判斷, : 那 Session/Cookie 過期時怎麼辦? : 這邊我還沒有實際做, : 不過我認為應該是在呼叫 RPC 時, : 由 Server 端去檢查 Session, : 如果不合格就丟出 Exception。 : Client 端收到 Exception 後就將畫面導到 login page. 以傳統 JSP 的作法 應該是由 filter 之類的方式來檢查「每一個」request 我想,要考慮安全,這是免不了的 (還好 GWT RPC 有 Exception 可以用,寫起來輕鬆一點 XD) : 3. 繼續接續上面的問題, : Client 端收到 Exception 時, : 可能只是一個畫面上的小 Panel 在處理, : 我要如何才能把整個畫面切換到 login screen 呢? : (RootPanel 通常會在 EntryPoint 手上) : 我承認這是一個 Application 常見的簡單問題啦 XD : 但是畢竟現在處理的是網頁, : 會不會有其他更適合的 pattern 能夠解決這個問題呢? : --- : 如果我的這篇文章沒有什麼嚴重的誤解的話, : 我想,是不是可以討論看看一些在其他語言上常用的架構,該如何用 GWT 實現。 有時候覺得 GWT 紅不起來 一方面是沒有一個更 high level 的 framework 另一方面是,以往針對網頁環境的概念跟架構 可能都不能馬上(或著不能?)轉移到 GWT 上頭 得重新思考驗證這樣? 當然,對於一個沒用過 Struts 之類東西的人 講這話好像有點大言不慚... 以上有誤還請各方大德不要客氣... -- 侃侃長論鮮窒礙 眾目睽睽無心顫 Blog:http://blog.psmonkey.org 煢居少聊常人事 殺頭容易告白難 歡迎參觀 Java 版(@ptt.cc) \囧/ --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.20.190.68
1F:推 tkcn:我倒覺得 GWT 是故意要跟網頁做出區別,主打 Web App 12/14 00:34







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

請輸入看板名稱,例如:WOW站內搜尋

TOP