首頁>技術>

B、< url-pattern/ >

可以使用兩個值:1、使用副檔名方式,語法:*.xxx,xxx是自定義的副檔名。常用方式 *. html , *.do等等http://localhost:8080/springmvc/add.htmlhttp://localhost:8080/springmvc/index.html2、使用斜杆方式,“/”

SpringMVC的MVC元件圖:4、SpringMVC執行流程圖流程分析:

(1)瀏覽器發起請求some.do到中央排程器DispatcherServlet

(2)DispatcherServlet接收請求some.so,把請求交給處理器對映器處理器對映器:springmvc框架中的一種物件,框架把實現了HandlerMapping介面的類都叫做對映器(多個)處理器對映器的作用:根據請求,從springmvc容器物件中獲取處理器物件MyController controller = ctx.getBean(“some.do”);框架把找到的處理器物件放入到一個叫做處理器執行鏈(HandlerExecutionChain)的類中儲存HandlerExecutionChain:類中儲存著1)處理器物件(MyController)2)專案中的所有的攔截器List< HandlerInterceptor >

(3)DispatcherServlet把(2)中的HandlerExceptionChain中的處理器物件交給了處理器介面卡物件(多個)處理器介面卡:springmvc框架中的物件,需要實現HandlerAdapt介面處理器介面卡作用:執行處理器方法(呼叫MyController.doSome()得到返回值ModelAndView)

(4)DispatcherServlet把(3)中獲取的ModelAndView交給檢視解析器物件檢視解析器:springmvc框架中的物件,需要交給ViewResoler介面(多個)檢視解析器作用:組成檢視完整路徑,使用字首和字尾,並建立view物件InternalResourceView:檢視類,表示jsp檔案,檢視解析器會建立InternalResourceView物件,這個物件裡有一個屬性url=/WEB-INF/view/show.jsp

(5)DispatcherServlet把(4)中建立好的View物件獲取到,呼叫View類自己的方法,把Model資料放入到request作用域中,執行物件檢視forward,請求結束。

5、SpringMVC執行過程原始碼分析(1)建立容器過程A、透過load-on-start標籤指定的1,建立DisaptcherServlet物件B、DisaptcherServlet它的父類是繼承HttpServlet的, 它是一個serlvet, 在被建立時,會執行init()方法。C、 在init()方法中,建立容器,讀取配置檔案
 WebApplicationContext ctx = new ClassPathXmlApplicationContext("springmvc.xml");1
D、把容器物件放入到ServletContext中
getServletContext().setAttribute(key, ctx);1
E、建立好容器後,建立@controller註解所在的類的物件, 建立MyController物件,這個物件放入到 springmvc的容器中,容器是map ,類似 map.put(“myController”,MyController物件)(2)請求處理過程1)執行servlet的service()
protected void service(HttpServletRequest request, HttpServletResponse response)       protected void doService(HttpServletRequest request, HttpServletResponse response)      DispatcherServlet.doDispatch(request, response){          呼叫MyController的.addUser( )方法      }123456789

doDispatch:springmvc中DispatcherServlet的核心方法, 所有的請求都在這個方法中完成的。

11
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • DotNet 雲原生架構師訓練營(模組二 基礎鞏固 安全)