javascript
SpringMVC——Spring中的DispatcherServlet怎么工作?
上一篇博客大致講了apache Tomcat如何將請求封裝經過filter請求到servlet
鏈接:tomcat如何將請求分發到servlet
這里說說到了Servlet如何處理。
先上一張類圖。
這是Servlet到DispatcherServlet的繼承關系,servlet里面有一個init方法,一般在第一次請求來得時候調用(有特殊情況,load-on-startup的值大于0的時候在實例化servlet調用)。
在init方法里使用了Spring最愛用的模板模式,子類去實現父類留好的模板方法,實現自己的特殊操作,對應到DispatcherServlet就是一些初始化,比如關鍵的如何讓url對應到Controller的方法上的initHandlerMapping()方法等。
接下來看另一個相似的圖
一樣的結構,不同的時這里我們講的是service方法的實現。
service方法就是本文最開始提到的tomcat里執行完filter然后執行Servlet的service方法。
同樣的模板方法,在httpServlet類里封裝了對GET POST請求不同的處理,普通的Servlet實現直接繼承即可。
在后面的繼承關系中,最后又將其封裝非processRequest方法,直到子類最后關鍵的實現doDispatch()這一關鍵的實現。
關于doDispatch()方法,后續繼續更新。
總結
以上是生活随笔為你收集整理的SpringMVC——Spring中的DispatcherServlet怎么工作?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tomcat如何将请求分发到servle
- 下一篇: HandlerInterceptor和H