国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java web 常用框架

2019-11-06 07:11:04
字體:
供稿:網(wǎng)友
Web框架是人們在使用某種語言編寫Web應(yīng)用服務(wù)端時關(guān)于架構(gòu)的最佳實(shí)踐。有些Web框架是從實(shí)際的Web項(xiàng)目抽取出來的,也就是說,做一個具體的應(yīng)用項(xiàng)目時,采取的架構(gòu)比較理想,就把這部分和領(lǐng)域無關(guān),而僅和Web的請求和響 應(yīng)處理有關(guān)的設(shè)計(jì)拿出來,形成一個基礎(chǔ),在開發(fā)別的應(yīng)用項(xiàng)目的時候則可以從這基礎(chǔ)做起,讓開發(fā)者更關(guān)注領(lǐng)域問題,而不是Web的請求和響應(yīng)的控制。也有些Web框架是直接設(shè)計(jì)出來的,很多Web框架在設(shè)計(jì)的時候也都借鑒了別的框架,吸取優(yōu)點(diǎn),修改不足,并根據(jù)自己的框架的定位,在特定方面有自己的發(fā) 揮,形成了自己的特點(diǎn),比如有的web框架追求的是松耦合性,層次,結(jié)構(gòu)之間都不密切綁定,有的Web框架則追求敏捷性,強(qiáng)調(diào)約定而不是配置。java 的 Web框架雖然各不相同,但基本也都是遵循特定的路數(shù)的:使用Servlet或者Filter攔截請求,使用MVC的思想設(shè)計(jì)架構(gòu),使用約定,xml或 Annotation實(shí)現(xiàn)配置,運(yùn)用Java面向?qū)ο蟮奶攸c(diǎn),面向抽象實(shí)現(xiàn)請求和響應(yīng)的流程,支持jsp,F(xiàn)reemarker,Velocity等視 圖。JSF 優(yōu)點(diǎn): Java EE標(biāo)準(zhǔn),這意味著有很大的市場需求和更多的工作機(jī)會 上手快速并且相對容易 有大量可用的組件庫 缺點(diǎn): 大量的JSP標(biāo)簽 對REST和安全支持不好 沒有一個統(tǒng)一的實(shí)現(xiàn)。既有SUN的實(shí)現(xiàn),又有Apache的實(shí)現(xiàn)——MyFaces。 國內(nèi)的OperaMasks還支持Ajax,以及有開發(fā)工具 支持sPRing MVC 優(yōu)點(diǎn): 對覆蓋綁定(overriding binding)、驗(yàn)證(validation)等提供生命周期管理 與許多表示層技術(shù)/框架無縫集成:JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF 等 便于測試——?dú)w功于IoC 缺點(diǎn): 大量的XML配置文件 太過靈活——沒有公共的父控制器 沒有內(nèi)置的Ajax支持Stripes 優(yōu)點(diǎn): 不需要書寫XML配置文件 良好的學(xué)習(xí)文檔 社區(qū)成員很熱心 缺點(diǎn): 社區(qū)比較小 不如其他的項(xiàng)目活躍 ActionBean里面的URL是硬編碼的 Struts 2 優(yōu)點(diǎn): 架構(gòu)簡單——易于擴(kuò)展 標(biāo)記庫很容易利用FreeMarker或者Velocity來定制 基于控制器或者基于頁面的導(dǎo)航 缺點(diǎn): 文檔組織得很差 對新特征過分關(guān)注 通過Google搜索到的大多是Struts 1.x的文檔Tapestry 優(yōu)點(diǎn): 一旦學(xué)會它,將極大地提高生產(chǎn)率 HTML模板——對頁面設(shè)計(jì)師非常有利 每出一個新版本,都會有大量的創(chuàng)新 缺點(diǎn): 文檔過于概念性,不夠?qū)嵱?學(xué)習(xí)曲線陡峭 發(fā)行周期長——每年都有較大的升級Wicket 優(yōu)點(diǎn): 對Java開發(fā)者有利(不是Web開發(fā)者) 頁面和顯示綁定緊密 社區(qū)活躍——有來自創(chuàng)建者的支持 缺點(diǎn): HTML模板和Java代碼緊挨著 需要對OO有較好的理解 Wicket邏輯——什么都用Java搞定在Java的Web框架中,我使用過Struts1,Struts2,試用過Stripes,Wicket,了解過JSF,SpringMVC。以我使用的經(jīng)驗(yàn),我覺得看一個Java Web框架應(yīng)看看下面幾個方面:1.設(shè)計(jì)理念一個框架設(shè)計(jì)出來應(yīng)該有一個基本的思路,它為什么要要被設(shè)計(jì)出來?有的框架的目標(biāo) 就是提高效率,有的框架的目標(biāo)的給用戶充分的選擇,有的框架的目標(biāo)是充分了解實(shí)際需求,給用戶一個盡量合理的默認(rèn)選擇,有的框架是要給使用者開發(fā)桌面程序的感覺。應(yīng)該說,一個好的框架應(yīng)該是實(shí)現(xiàn)了預(yù)期目標(biāo),體現(xiàn)出了自己的設(shè)計(jì)理念的。2.設(shè)計(jì)的合理性設(shè)計(jì)的合理性表現(xiàn)在框架在一些關(guān)鍵問題上的處理,比如靈活性和敏捷性之間的權(quán)衡,硬編碼和文本配置之間的權(quán)衡。靈活性指的是可以適應(yīng)用戶多樣的需求,很特 殊的要求也能得到支持,有的框架的實(shí)現(xiàn)基于太多的約定,使得用戶只能遵循。而敏捷性指的是用戶在解決絕大多數(shù)常規(guī)問題的時候,能盡量少做工作,提高效率。 框架設(shè)計(jì)者只能在這兩者見達(dá)到一個平衡點(diǎn),權(quán)衡的怎么樣,就很見水平了。硬編碼和文本配置之間的權(quán)衡也很有意思,文本配置的意義在于Java是一個編譯語 言,強(qiáng)調(diào)代碼的封閉,講究擴(kuò)展而不是修改,這種情況下文本配置信息可以很方便的在不修改程序的情況下改變程序行為,但是隨著一些靈活的腳本語言實(shí)現(xiàn)的 Web框架的出現(xiàn),人們發(fā)現(xiàn)在這樣的框架中,腳本語言即做程序編碼語言,也做配置語言,還做視圖上的標(biāo)記語言,這使我們對Java實(shí)現(xiàn)的框架有了一番新的 審視,既然配置文件并沒有消除對程序的修改,為什么不能在應(yīng)編碼上下下功夫呢?3.設(shè)計(jì)的平衡性設(shè)計(jì)的平衡性指的是,框架在設(shè)計(jì)流程中各階段,各層次的實(shí)現(xiàn)方式時,所達(dá)到的上述權(quán)衡(靈活性和敏捷性之間的權(quán)衡等)應(yīng)該是具有一致的水平。一個在控制上過分靈活,而視圖上具有非常大限制的框架是不能算做一個好的框架的。4.框架真的解放了開發(fā)者嗎框架的目的是讓開發(fā)者把更多的精力放在領(lǐng)域問題,而非Web的請求和響應(yīng)的處理問題上。而事實(shí)上框架都做到這一點(diǎn)了嗎?不可否認(rèn),框架的使用提高代碼的可 維護(hù)性,但是框架在解放開發(fā)者這點(diǎn)上就未必了,有時還給開發(fā)者帶來了額外的負(fù)擔(dān)。事實(shí)上,直接使用Servlet,只要維持好代碼風(fēng)格,一樣可以很有效 率,當(dāng)然,直接使用Servlet的靈活性就不用說了。在我接觸的Web框架中,我最推崇的是Struts2,設(shè)計(jì)優(yōu)雅,偏重靈活,也基本不造成額外的負(fù)擔(dān),當(dāng)然這些評價是和我參與的項(xiàng)目的規(guī)模有關(guān)的,其他規(guī)模的項(xiàng)目Struts2就未必合適了。我希望Struts2能在下面幾個方面有些改善:1.在提供文本配置方式的基礎(chǔ)上給一個約定配置的方式,讓開發(fā)者在大多數(shù)情況下可以不配置。2.配置也支持硬編碼,因?yàn)橛袝r候維護(hù)可修改的硬編碼是很有效率的。3.在攔截請求上,能借鑒下ROR,Django的思路,適應(yīng)新的Url的需求,考慮大家對“?”后添加屬性的回避,支持帶占位符的Url。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 潢川县| 庆阳市| 麟游县| 闻喜县| 广州市| 富阳市| 阜宁县| 加查县| 武清区| 宜城市| 萨嘎县| 陵川县| 大田县| 资源县| 吴川市| 芦山县| 内黄县| 长宁县| 雅江县| 瑞安市| 田林县| 双鸭山市| 贺州市| 库尔勒市| 广元市| 新安县| 炉霍县| 宣汉县| 安丘市| 科尔| 娱乐| 汾西县| 青龙| 辽宁省| 盘山县| 雷波县| 平塘县| 宝丰县| 莱州市| 修武县| 蕉岭县|