上一篇:11-SpringMVC核心之攔截器的應用實踐用戶登錄驗證https://blog.csdn.net/fsjwin/article/details/109636325
1. SpringMVC的執行流程
先給出執行流程的示意圖:

- 瀏覽器發出請求到達中央處理器
- (2-3步)DispatchServlet接收到請求后,把請求交給處理器映射器,處理器映射器是springmvc框架中的一種物件,框架把視線了HandlerMapping介面的類均叫做處理器映射器(在框架中是多個),
處理器映射器的作用:根據請求從springmvc容器中獲取處理器物件即:
MyController myController = ct.getBean(“xxx.do”);
處理器映射器把獲得的controller物件放在執行器執行鏈當中,這也是一個類:HandlerExecutionChain.java,
HandlerMapping.java:
@Nullable
HandlerExecutionChain getHandler(HttpServletRequest var1) throws Exception;

類實作類很多,現在我們使用注解了之后就方便了很多,
HandlerExecutionChain.java:
//處理器(MyController)
private final Object handler;
//攔截器
@Nullable
private HandlerInterceptor[] interceptors;
- (4-7步)中央處理把HandlerExecutionChain交給處理器配接器(多個),配接器是springmvc中的組件,只要實作了HandlerAdapter介面的均叫處理器配接器,會呼叫handle方法,具體實作就是myController中的相應方法,得到ModelAndView物件(這個ModelAndView重新回到DispatchServlet中央調度器手中)

HandlerAdapter的實作類:(和映射器一一對應)

4. (8-9) 視圖決議器,使用前后綴配成物體,使用View類來表示

比如:RedirectView 物件代表的就是的就是redirect:/EEB-INF/view/first.jsp這里的視圖,

然后把view物件回傳給中央調度器DispatchServlet
- DispatchServlet把view物件,呼叫view物件自己的方法相應給頁面,
2. DispatchServlet中的重要節點
DispatchServlet中的重要節點:
的到執行鏈:

呼叫配接器:

3. 總結
這個在面試程序中用的多,開發中實際應用不大,
各個器君合DispatchServlet中央調度器互動,各自之間沒有耦合!
建議原始碼有余力詳細研究!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/216593.html
標籤:其他
