什么是web框架
什么是web框架
Web應(yīng)用框架(Web application framework)是一種開發(fā)框架,用來支持動態(tài)網(wǎng)站、網(wǎng)絡(luò)應(yīng)用程序及網(wǎng)絡(luò)服務(wù)的開發(fā)。下面學(xué)習(xí)啦小編就給大家具體介紹web框架。
什么是web框架
Web應(yīng)用框架(Web application framework)是一種開發(fā)框架,用來支持動態(tài)網(wǎng)站、網(wǎng)絡(luò)應(yīng)用程序及網(wǎng)絡(luò)服務(wù)的開發(fā)。這種框架有助于減輕網(wǎng)頁開發(fā)時共通性活動的工作負(fù)荷,例如許多框架提供數(shù)據(jù)庫訪問接口、標(biāo)準(zhǔn)樣板以及會話管理等,可提升代碼的可再用性。
web框架的分類
web框架可以分為基于請求的(request-based)和基于組件的(component-based)兩大陣營。前者的代表有Struts和Spring MVC等,后者的成員則有JSF、Tapestry等等。
對比
基于請求的框架較早出現(xiàn),它用以描述一個web應(yīng)用程序結(jié)構(gòu)的概念和傳統(tǒng)的靜態(tài)Internet站點一樣,是將其機制擴展到動態(tài)內(nèi)容的延伸。對一個提供HTML和圖片等靜態(tài)內(nèi)容的網(wǎng)站,網(wǎng)絡(luò)另一端的瀏覽器發(fā)出以URI形式指定的資源的請求,Web服務(wù)器解讀請求,檢查該資源是否存在于本地,如果是則返回該靜態(tài)內(nèi)容,否則通知瀏覽器沒有找到。Web應(yīng)用升級到動態(tài)內(nèi)容領(lǐng)域后,這個模型只需要做一點修改。那就是web服務(wù)器收到一個URL請求(相較于靜態(tài)情況下的資源,動態(tài)情況下更接近于對一種服務(wù)的請求和調(diào)用)后,判斷該請求的類型,如果是靜態(tài)資源,則照上面所述處理;如果是動態(tài)內(nèi)容,則通過某種機制(CGI、調(diào)用常駐內(nèi)存的模塊、遞送給另一個進(jìn)程如Java容器)運行該動態(tài)內(nèi)容對應(yīng)的程序,最后由程序給出響應(yīng),返回瀏覽器。在這樣一個直接與web底層機制交流的模型中,服務(wù)器端程序要收集客戶端籍get或post方式提交的數(shù)據(jù),轉(zhuǎn)換,校驗,然后以這些數(shù)據(jù)作為輸入運行業(yè)務(wù)邏輯后生成動態(tài)的內(nèi)容(包括HTML、JavaScript、CSS、圖片等)。
基于組件的框架采取了另一種思路,它把長久以來軟件開發(fā)應(yīng)用的組件思想引入到web開發(fā)。服務(wù)器返回的原本文檔形式的網(wǎng)頁被視為由一個個可獨立工作、重復(fù)使用的組件構(gòu)成。每個組件都能接受用戶的輸入,負(fù)責(zé)自己的顯示。上面提到的服務(wù)器端程序所做的數(shù)據(jù)收集、轉(zhuǎn)換、校驗的工作都被下放給各個組件?,F(xiàn)代web框架基本上都采用了模型、視圖、控制器相分離的MVC架構(gòu),基于請求和基于組件兩種類型大都會有一個控制器將用戶的請求分派給負(fù)責(zé)業(yè)務(wù)邏輯的模型,運算的結(jié)果再以某個視圖表現(xiàn)出來,所以兩大分類框架的區(qū)別主要在視圖部分,基于請求的框架仍然把視圖也就是網(wǎng)頁看作是一個文檔整體,程序員要用HTML、Javascript和CSS這些底層的代碼來寫“文檔”,而基于組件的框架則把視圖看作由積木一樣的構(gòu)件拼成,積木的顯示不用程序員操心(當(dāng)然它們也是由另一些程序員開發(fā)出來的),只要設(shè)置好它綁定的數(shù)據(jù)和調(diào)整它的屬性,把他們大大從編寫HTML、Javascript和CSS這些界面的工作中解放出來。
選擇
基于請求的和基于組件的兩種框架各有優(yōu)劣。雖然一眼看上去后者有很大的吸引力,普通的web開發(fā)人員只要使用專門的公司或開源組織提供的組件就可以輕松開發(fā)出好用漂亮的界面,但是有幾種因素綜合起來不利于這種理想中的方案。要編寫一個沒有潛在問題的、跨瀏覽器的、顯示美觀并且有足夠靈活性可以調(diào)整的服務(wù)器端組件是需要高水平的技能、豐富的經(jīng)驗和較多時間的,即使付出這些成本,也不能完全避免使用者失望的情況。
綜合來看,基于請求的框架要程序員自己動手的地方比較多,但也因此可以更精細(xì)地控制HTML、CSS和Javascript這些最終決定應(yīng)用程序界面的代碼,特別是如果要在界面上有創(chuàng)新,嘗試新的視覺效果和用戶操作,必然選擇基于請求的框架?;诮M件的框架可以提高開發(fā)界面的效率,前提是選用的組件質(zhì)量優(yōu)秀。
web框架的特點
網(wǎng)頁模版系統(tǒng)
網(wǎng)頁高速緩存
安全性
URL映射
AJAX
自動configuration
Web服務(wù)
猜你感興趣:
1.什么是css框架