springMVC相關知識總結
springMVC框架:
是spring的一個模組,與spring無需進行整合,是基於mvc的web框架
mvc——模型檢視控制器,是一種設計模式,走捷徑
mvc在B/S系統下的應用——控制器(struts2中的filter,處理請求產生響應)
springMVC框架——前端控制器(DispacherServlet,處理請求產生響應)
springMVC實現流程
元件:
1.前端控制器DispatcherServlet,不需要程式開發,
作用——接受請求,響應結果,相當於轉發器,中央處理器,減少其他元件之間的耦合度
2.處理器對映器HandlerMapping,不需要程式開發,
作用——根據請求的url查詢Handler
3.處理器介面卡HandlerAdapter,
作用——按照介面卡特定規則執行·Handler
注意——編寫Handler按照介面卡的要求去做,這樣介面卡才可以正確執行Handler(Controller程式設計師自己編寫)
4.檢視解析器View resolver
作用:進行檢視解析,根據邏輯檢視名解析真正的檢視(view)
5.檢視View,是一個介面,實現類支援不同的view型別(jsp,freemaker,pdf,excel)
簡單配置:
1.web.xml——spring配置檔案(前端控制器【入口】),web監聽器,解決亂碼
<!--啟動時監聽器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <!--伺服器啟動時建立spring容器 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/springMVC-servlet.xml</param-value> </context-param> <!--springmvc前端控制器 --> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 預設在web-inf --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/springmvc-servlet.xml</param-value> </init-param> </servlet> <!--contextConfigLocation配置springmvc載入的配置檔案(配置處理器對映器,介面卡等) 如果不配置contextConfigLocation,預設載入/WEB-INF/servlet名稱-servlet.xml(springmvc-servlet.xml) -->
2.在springmvc-Servlet.xml中配置註解驅動的控制器,自動掃描(controller,service,dao),
3.編寫Handler,需要實現Controller介面
springMVC和struts的區別:
1)springmvc的入口是一個servlet,即前端控制器,例如:.action
struts2入口是一個filter過慮器,即前端過濾器,例如:/
2)springmvc是基於方法開發,傳遞引數是通過方法形參,可以設計為單例
struts2是基於類開發,傳遞引數是通過類的屬性,只能設計為多例
3)springmvc通過引數解析器是將request物件內容進行解析成方法形參,
將響應資料和頁面封裝成ModelAndView物件,最後又將模型資料通過request物件傳輸到頁面
struts採用值棧儲存請求和響應的資料,通過OGNL存取資料,經過實際測試,struts2速度慢,在於使用struts標籤,如果使用建議使用jstl。