SpringMVC是Spring框架提供的一個實現webMVC設計模式的輕量級框架它於Sturts2框架一樣,都屬於MVC框架
三層架構:
表現層:
web層,用來和客戶端進行數據交互的,表現層一般會采用MVC的設計模式
業務層:
處理公司具體的業務邏輯
持久層:
用來操作數據庫的
MVC的設計模型:
MVC的全稱是Model View Controller 模型視圖控制器,每個部分都各司其職
1.Model:數據模型,JavaBean(實體類)對象,用來進行數據封裝的
2.View:視圖,具體指的是我們Jsp,HTML,用來展示數據,給用戶看的
3.Contrller:用來接收用戶的請求,整個流程的控制器,用來進行數據校驗等
SpringMVC工作原理:
1、 用戶發送請求至前端控制器DispatcherServlet。
2、 DispatcherServlet收到請求調用HandlerMapping處理器映射器。
3、 處理器映射器找到具體的處理器(可以根據xml配置、注解進行查找),生成處理器對象及處理器攔截器(如果有則生成)一並返回給DispatcherServlet。
4、 DispatcherServlet調用HandlerAdapter處理器適配器。
5、 HandlerAdapter經過適配調用具體的處理器(Controller,也叫后端控制器)。
6、 Controller執行完成返回ModelAndView。
7、 HandlerAdapter將controller執行結果ModelAndView返回給DispatcherServlet。
8、 DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器。
9、 ViewReslover解析后返回具體View。
10、 DispatcherServlet根據View進行渲染視圖(即將模型數據填充至視圖中)。
11、視圖渲染結果會返回給客戶端瀏覽器顯示。
SpringMVC特點:
1,是Spring框架的一部分,可以方便的利用Spring提供的功能
2,靈活性強,易於其他框架繼承
3,提供了DispatcherServlet,使開發人員無需開發額外的控制器對象
4,可自動綁定用戶輸入,並能正確的轉換數據類型
5,內置了常見的校驗器,可以校驗用戶輸入,如果不能通過,那么就會重定向到輸入表單
6,支持國際化,可以根據用戶區域顯示多國語言
7,支持多種視圖技術
8,使用基於XML配置文件,在編譯后,不需要從新編譯應用程序
實例代碼:
1,導入jar包
2,編寫web.xml
在上述代碼中<load-on-startup>元素和<init-param>元素都是可選的,如果<load-on-startup>元素的值為1,則在應用程序啟動時會立即加載該Servlet;
如果<load-on-startup>元素不存在,則應用程序會在第一個Servlet請求時加載該Servlet。如果<init-param>元素存在並且通過其子元素配置了
SpringMVC配置文件的路徑,則應用程序在啟動時會加載配置路徑下的配置文件;如果沒有<init-param>元素配置,則應用程序會默認到WEB-INF目錄下
尋找如下命名方式的配置文件:servletName-servlet.xml這個servletName指的是部署在web.xml中的DispatcherServlet的名稱,
在上面web.xml中的配置代碼即為Springmvc,- servlet.xml是配置文件的固定寫法
3,編寫SpringMVC配置文件
首先定義了一個名稱為"/firstcontroller"的Bean,該Bean會將控制器類FirstController映射到"/firstcontroller"請求中,
然后配置了處理器映射器BeanNameUrlHandlerMapping和處理器適配器SimpleControllerHandlerAdapter,其中處理器映射器用
於將處理器Bena中的name(url)進行處理器查找,而處理器適配器用於完成對FirstController處理器中的handlerRequest()方法的調
用,最后配置了視圖解析器InternalResourceViewResolver來解析結果是,並將結果呈現給用戶
注意:在Spring 4.0以后,就不需要配置處理器映射器BeanNameUrlHandlerMapping和處理器適配器SimpleControllerHandlerAdapter了
4,編寫Controller類
5,jsp頁面