學(xué)習(xí)啦 > 知識(shí)大全 > 知識(shí)百科 > 百科知識(shí) > 什么是web框架

什么是web框架

時(shí)間: 樹(shù)源981 分享

什么是web框架

  Web應(yīng)用框架(Web application framework)是一種開(kāi)發(fā)框架,用來(lái)支持動(dòng)態(tài)網(wǎng)站、網(wǎng)絡(luò)應(yīng)用程序及網(wǎng)絡(luò)服務(wù)的開(kāi)發(fā)。下面學(xué)習(xí)啦小編就給大家具體介紹web框架。

  什么是web框架

  Web應(yīng)用框架(Web application framework)是一種開(kāi)發(fā)框架,用來(lái)支持動(dòng)態(tài)網(wǎng)站、網(wǎng)絡(luò)應(yīng)用程序及網(wǎng)絡(luò)服務(wù)的開(kāi)發(fā)。這種框架有助于減輕網(wǎng)頁(yè)開(kāi)發(fā)時(shí)共通性活動(dòng)的工作負(fù)荷,例如許多框架提供數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)接口、標(biāo)準(zhǔn)樣板以及會(huì)話(huà)管理等,可提升代碼的可再用性。

  web框架的分類(lèi)

  web框架可以分為基于請(qǐng)求的(request-based)和基于組件的(component-based)兩大陣營(yíng)。前者的代表有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)容,否則通知瀏覽器沒(mé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)求的類(lèi)型,如果是靜態(tài)資源,則照上面所述處理;如果是動(dòng)態(tài)內(nèi)容,則通過(guò)某種機(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ù)器端程序要收集客戶(hù)端籍get或post方式提交的數(shù)據(jù),轉(zhuǎn)換,校驗(yàn),然后以這些數(shù)據(jù)作為輸入運(yùn)行業(yè)務(wù)邏輯后生成動(dòng)態(tài)的內(nèi)容(包括HTML、JavaScript、CSS、圖片等)。

  基于組件的框架采取了另一種思路,它把長(zhǎng)久以來(lái)軟件開(kāi)發(fā)應(yīng)用的組件思想引入到web開(kāi)發(fā)。服務(wù)器返回的原本文檔形式的網(wǎng)頁(yè)被視為由一個(gè)個(gè)可獨(dú)立工作、重復(fù)使用的組件構(gòu)成。每個(gè)組件都能接受用戶(hù)的輸入,負(fù)責(zé)自己的顯示。上面提到的服務(wù)器端程序所做的數(shù)據(jù)收集、轉(zhuǎn)換、校驗(yàn)的工作都被下放給各個(gè)組件?,F(xiàn)代web框架基本上都采用了模型、視圖、控制器相分離的MVC架構(gòu),基于請(qǐng)求和基于組件兩種類(lèi)型大都會(huì)有一個(gè)控制器將用戶(hù)的請(qǐng)求分派給負(fù)責(zé)業(yè)務(wù)邏輯的模型,運(yùn)算的結(jié)果再以某個(gè)視圖表現(xiàn)出來(lái),所以?xún)纱蠓诸?lèi)框架的區(qū)別主要在視圖部分,基于請(qǐng)求的框架仍然把視圖也就是網(wǎng)頁(yè)看作是一個(gè)文檔整體,程序員要用HTML、Javascript和CSS這些底層的代碼來(lái)寫(xiě)“文檔”,而基于組件的框架則把視圖看作由積木一樣的構(gòu)件拼成,積木的顯示不用程序員操心(當(dāng)然它們也是由另一些程序員開(kāi)發(fā)出來(lái)的),只要設(shè)置好它綁定的數(shù)據(jù)和調(diào)整它的屬性,把他們大大從編寫(xiě)HTML、Javascript和CSS這些界面的工作中解放出來(lái)。

  選擇

  基于請(qǐng)求的和基于組件的兩種框架各有優(yōu)劣。雖然一眼看上去后者有很大的吸引力,普通的web開(kāi)發(fā)人員只要使用專(zhuān)門(mén)的公司或開(kāi)源組織提供的組件就可以輕松開(kāi)發(fā)出好用漂亮的界面,但是有幾種因素綜合起來(lái)不利于這種理想中的方案。要編寫(xiě)一個(gè)沒(méi)有潛在問(wèn)題的、跨瀏覽器的、顯示美觀(guān)并且有足夠靈活性可以調(diào)整的服務(wù)器端組件是需要高水平的技能、豐富的經(jīng)驗(yàn)和較多時(shí)間的,即使付出這些成本,也不能完全避免使用者失望的情況。

  綜合來(lái)看,基于請(qǐng)求的框架要程序員自己動(dòng)手的地方比較多,但也因此可以更精細(xì)地控制HTML、CSS和Javascript這些最終決定應(yīng)用程序界面的代碼,特別是如果要在界面上有創(chuàng)新,嘗試新的視覺(jué)效果和用戶(hù)操作,必然選擇基于請(qǐng)求的框架?;诮M件的框架可以提高開(kāi)發(fā)界面的效率,前提是選用的組件質(zhì)量?jī)?yōu)秀。

  web框架的特點(diǎn)

  網(wǎng)頁(yè)模版系統(tǒng)

  網(wǎng)頁(yè)高速緩存

  安全性

  URL映射

  AJAX

  自動(dòng)configuration

  Web服務(wù)

猜你感興趣:

1.什么是css框架

2.web框架技術(shù)論文

3.什么是web開(kāi)發(fā)

4.什么是b/s架構(gòu)

5.什么是mootools

2734565