在這裏我的整理了一些資料,有須要的朋友能夠直接點擊領取。html
22本Java架構師核心書籍java
架構簡單,容易實現。面試
視圖層的職責不單一;不只須要對數據進行封裝,還須要編寫邏輯代碼調用模型層也就是說這裏的視圖層充當了視圖 + 控制兩個職責;視圖層直接與模型層打交道頁面及其的混亂、不利於維護spring
MVC架構提出是爲了將視圖與模型層分開,兩者不直接打交道;而是經過控制層來從當兩者交互的橋樑;數據庫
視圖層只須要專一於數據封裝與展現架構
模型層專一於業務邏輯mvc
控制層負責處理用戶遞交的請求,而且協調視圖與模型層
SpringMVC框架的核心圍繞着DispatcherServlet前端控制器進行展開,它用於協調全部的Servlet對用戶的請求進行解析、查找對應的Servlet進行處理、最後給出響應!能夠將DispatcherServlet功能相似於CPU處理器、人類的大腦…
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>${message}</h1> </body> </html>
public class HelloController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { // 1. 建立模型-視圖 ModelAndView mv = new ModelAndView(); //調用業務層 // 2. 封裝數據對象 mv.addObject("message","Hello, SpringMVC!"); // 3. 封裝要跳轉的視圖,放在ModelAndView中 mv.setViewName("hellomvc"); return mv; } }
核心配置文件中,配置映射器、適配器、解析器;最後將請求的路徑以及對應的Servlet類交給IOC容器託管。
<?xml version="1.0" encoding="UTF8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 1. 配置處理器映射器 --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!-- 2. 配置處理器適配器 --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> <!-- 3. 配置視圖解析器 --> <bean id="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 前綴 --> <property name="prefix" value="/WEB-INF/page/"/> <!-- 後綴 --> <property name="suffix" value=".jsp"/> </bean> <!-- 4. 將servlet交給IOC容器管理 --> <bean id="/hellomvc" class="com.controller.HelloController"/> </beans>
因爲全部的Sevlet不在走各自的映射路徑,而是統一由前端控制器DispatcherServlet調度,因此只須要在項目的web.xml中配置DispatcherServlet便可。而後將SpringMVC核心配置文件交給前端控制器DispatcherServlet掌管!
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!--1.註冊DispatcherServlet--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 關聯Spring的核心配置文件 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:SpringMVC-Servlet.xml</param-value> </init-param> <!-- 啓動級別1 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
web.xml中無須要在配置單獨Servlet的映射路徑,而是直接配DispatcherServlet。這是由於前端控制器會自行根據HandlerMapping進行查找。
Servlet無需在繼承HttpServlet類,是由於DispatcherServlet是繼承了HttpServlet。而如今編寫的Servlet實現了Controller接口會在通過適配器HandlerAdapter進行找到!
都看到這裏,以爲文章對你有幫助記得給個點贊。