前段時間把之前寫的dao框架(手寫dao框架(一)-從「1」開始)整理了一下,重構了一版。整理過程中看以前寫的**,只是為了了解實現,只是為了實現,**寫的有點粗糙。既然已經整理了dao框架,索性繼續整理一下mvc框架(所謂溫故知新也。
學習web的時候,一般都是先學servlet
通過servlet可以接受到http請求,並進行響應
這個時候,是不需要struts、springmvc等框架的
web應用伺服器
servlet容器
servlet需要執行在容器裡
1)服務啟動時載入servlet
2)第一次請求時
2.1)例項化servlet
2.2)執行init方法
3)呼叫service方法,判斷請求的型別
3.1)get型別則呼叫doget方法
3.2)post型別則呼叫dopost方法
4)服務重啟或者關閉時,呼叫destroy方法
model(模型)
應用程式中用於處理應用程式資料邏輯的部分
view(檢視)
應用程式中處理資料顯示的部分
controller(控制器)
應用程式中處理使用者互動的部分
controller接收請求,然後返回modelandview
1)springmvc將所有的請求提交給dispatcherservlet,它會委託應用系統的其他模組負責對請求進行真正的處理
3)dispatcherservlet將請求提交到目標controller
4)controller進行業務邏輯處理後,返回乙個modelandview
5)dispatcherservlet查詢viewresolver視**析器,找到modelandview物件指定的檢視物件
6)將頁面渲染到瀏覽器端
1)關於視**析器
之前的頁面經常用到freemarker、jsp等,需要經過視**析器解析成html
個人覺得上面兩種方式,還不如直接html,通過js刷頁面來的直觀
自己寫mvc框架,可以先實現mc,v暫時用html
2)主要功能
封裝了servlet
ioc:例項管理
aop:動態**、cglib
類似dispatcherservlet
服務初始時掃瞄所有uri,並放入乙個urimap中
定義乙個servlet來接收所有請求
根據請求url匹配urimap中對應的controller
將請求分發給對應的controller
註解形式
定義需要的註解
服務啟動時,掃瞄註解的類
將註解的類根據依賴(通過反射)進行例項化
暫緩實現
1)各層註解
controller、service、repository、component
2)自動注入註解
autowired
3)uri註解
掃瞄填寫的uri
1)接收請求
2)分發請求
附腦圖:
下篇:手寫mvc框架(二)-**實現和使用示例
自己動手寫框架 一
php框架接觸有一段時間,主要是kohana和thinkphp。這兩個框架各有各的特色,總體來說kohana還是相對來說比較簡單,但是國內資料較少。簡單的,我把我的這個框架命名為demo.框架搭建第一步,總體目錄規劃 classes controller models views template ...
RPC 手寫乙個RPC框架
基於上一節的內容rpc 準備階段,自己實現乙個基本的rpc框架。public class rpcserverframereg 註冊服務,就是將介面和實現類儲存到上邊定義的serviceholder中,param serviceinte ce 介面 param impl 介面的實現類 throws i...
2019 再出發,擼起袖子加油幹,我們一直在路上!
這篇文章寫了好久好久,以至於我從2018年寫到了2019年,真的好久好久。原來寫一篇文章需要這麼長的時間,幸好有你們的相伴 關注 與支援。對於已經過去的2018年,民工哥之前也有過總結 說一件非常重要的事情 總的來說,大部分的目標都已經完成,小部分沒有完成或者說沒有能達到心理的預期水平。如果滿分10...