先介紹一下SpringMVC的執行流程:
1:客戶端發起請求到DispatcherServlet(前端控制器)
2:前端控制器請求HandlerMapping(處理器映射器)查找 Handler
根據xml配置、注解進行查找
3:HandlerMapping(處理器映射器)向DispatcherServlet(前端控制器)返回Handler
4:DispatcherServlet(前端控制器)調用HandlerAdapter(處理器適配器)去執行Handler
5:HandlerAdapter(處理器適配器)去執行Handler
6:Handler執行完成給HandlerAdapter(處理器適配器)返回ModelAndView
7:HandlerAdapter(處理器適配器)向前端控制器返回ModelAndView
ModelAndView是springmvc框架的一個底層對象,包括 Model和view
8:前端控制器請求ResolverView(視圖解析器)去進行視圖解析
根據邏輯視圖名解析成真正的視圖(jsp)
9:ResolverView(視圖解析器)向DispatcherServlet(前端控制器)返回View
10:DispatcherServlet(前端控制器)進行視圖渲染
視圖渲染將模型數據(在ModelAndView對象中)填充到request域
最后DispatcherServlet(前端控制器)向用戶響應(response)結果
本人不是學美術的,也不是做前端的,所以畫的不好看 O(∩_∩)O~
然后是Struts2的執行流程:1、客戶端向服務器端發送一個請求,經過一系列的過濾器(在Struts2.0版本的時候叫做FilterDispatcher,在Struts2.1以上的版本叫做StrutsPrepareAndExecuteFilter),過濾器(StrutsPrepareAndExecuteFilter)會解析Struts.xml文件,請求查找相應的Action,如果沒有則會報錯,如果有則會生成對應的代理對象,然后經過一系列的攔截器,直到調用Action類中的execute()方法,處理結果由Struts2的處理器到核心過濾器再到服務器,最后由服務器響應(Response)到客戶端。
這個圖不是我畫的,我直接拿來用了,拿來主義有時候還是很好用的(*^__^*) ……
相信真真正正的寫過的話,這些流程就很好記了,我會在后面的一些文章里面繼續完善我的畫圖能力 ^_^