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