作者:
popcorny (畢業了..@@")
2014-06-06 14:12:11※ 引述《Killercat (殺人貓™)》之銘言:
: 其實我覺得要看你的用途
: 下面很多人說不推Servlet, 但是其實如果是寫API的話
: 你要找到比Servlet還簡單的有點難度
: 你說你至少學過一點點Java 所以Servlet我個人認為是首選
: 更不用講Servlet可以幾近無痛的直接執行System Call
: 但是如果你是要作「網頁」的話,那真的珍惜生命遠離jsp/servlet....
: 那東西維護起來會要人命的。API的話絕無問題也很好處理就是...
有關web framework的層級,我是這樣看的
CGI層級:
Servlet - 可以map一個url到一個Servlet,很簡單陽春的處理Get/Post
透過inputstream/outputstream來處理web request/response
Template層級
JSP (或ASP/PHP) - 通常是把程式內嵌在HTML中,處理簡單的邏輯。但是
複雜的邏輯就會寫得很醜。現在應該很少project是只用template了。
MVC層級
Struts, SpringMVC - Controller處理Business邏輯,產生Model到View(Template)
去呈現。當然你可以用Servlet/Jsp去兜,但是可能只有你自己懂得裡面的魔法。
用Struts Spring有豐富的文件幫助你去兜比較大的架構。另外有人說的SSH
(Struts, Spring, Hibernate)也屬於這種的應用之一。
MVC + Modules/Plugins
Django(Python), RoR(Ruby), Play! (Java/Scala), Grails (Java/Groovy)
除了定義MVC基本的架構外,還有定義很多設計慣例,方便模組化。而且
通常會搭配好用的模組安裝工具,幫助你安裝很多third party的模組或外掛
讓你很快速的開發堪用的production等級的東西。
Rest API Framework
Jersey - 寫RestAPI時幫助你處理Url Pattern到Controller這段。通常是
要開發存rest api才會用這種技術,但是也可以做成MVC。
Web UI Component Framework
JSF, GWT, ZK, Vaadin - 類似寫Desktop UI,但是是放在web上,你可以不用
寫太多HTML/Javascript,Server端的component會render好,把結果送到前端。
通常會是event-driven的形式。
我比較推薦的是MVC+Modules/Plugins,並且前端透過template +
javascript的MVC framework去寫。通常這類的framework把很多web常見的pattern
弄得好好,你就專心寫你想要的邏輯就好了。你想要的功能也可能在plugins(modules)
找到,遠比你自己開發來的快速且穩定。
另外寫Java你可能要學會怎麼包成war檔,並且deploy到application server,
這有時候也是一個門檻。