rose[WEB開發框架]

Rose (原名 Paoding-Rest) 是一個基於Servlet規範、Spring“規範”的WEB開發框架。

基本信息

簡介

Rose (原名 Paoding-Rest) 是一個基於Servlet規範、Spring“規範”的WEB開發框架。

Rose 框架通過在web.xml配置過濾器攔截並處理匹配的web請求,如果一個請求應該由在Rose框架下的類來處理, 該請求將在Rose調用中完成對客戶端回響. 如果一個請求在Rose中沒有找到合適的類來為他服務,Rose將把該請求移交給web容器的其他組件來處理。

特點

Rose使用過濾器而非 Servlet來接收web請求,這有它的合理性以及好處。

Servlet規範以“邊走邊看”的方式來處理請求, 當伺服器接收到一個web請求時,並沒有要求在web.xml必須有相應的Servlet組件時才能處理,web請求被一系列Filter過濾時, Filter可以拿到相應的Request和Response對象 ,當Filter認為自己已經能夠完成整個處理,它將不再調用chain.doNext()來使鏈中下個組件(Filter、Servlet、JSP)進行處理。

使用過濾器的好處是,Rose可以很好地和其他web框架兼容。這在改造遺留系統、對各種uri的支持具有天然優越性。正是使用過濾器,Rose不再要求請求地址具有特殊的後綴。

為了更好地理解,可以把Rose看成這樣一種特殊的Servlet:它能夠優先處理認定的事情,如無法處理再交給其它Filter、Servlet或JSP來處理。這個剛好是普通Servlet無法做到的 : 如果一個請求以後綴名配置給他處理時候 ,一旦該Servlet處理不了,Servlet規範沒有提供機制使得可以由配置在web.xml的其他正常組件處理 (除404,500等錯誤處理組件之外)。

一個web.xml中可能具有不只一個的Filter,Filter的先後順序對系統具有重要影響,特別的,Rose自己的過濾器的配置順序更是需要講究 。如果一個請求在被Rose處理前,還應該被其它一些過濾器過濾,請把這些過濾器的mapping配置在Rose過濾器之前。

配置

1) 大多數請況下,filter-mapping 應配置在所有Filter Mapping的最後。 2) 不能將 FORWARD、INCLUDE 的 dispatcher 去掉,否則forward、 include的請求Rose框架將攔截不到

Rose框架內部採用"匹配 ->執行"兩階段邏輯。Rose內部結構具有一個匹配樹, 這個數據結構可以快速判斷一個請求是否應該由Rose處理並進行, 沒有找到匹配的請求交給過濾器的下一個組件處理。匹配成功的請求將進入”執行“階段。 執行階段需要經過6個步驟處理:“參數解析 -〉 驗證器 -〉 攔截器 -〉 控制器 -〉 視圖渲染 -〉渲染後"的處理鏈。

相關詞條

相關搜尋

熱門詞條

聯絡我們