SpringMVC系列知識:(二)什麼是springMVC,為什麼要使用springMVC

- ich lebe .發表於2020-09-28

在這裡插入圖片描述
在這裡插入圖片描述

為什麼學springMVC?

之前的程式碼存在一個問題

① 每個功能都要宣告對應的Servlet,麻煩。

② 在Servlet中獲取請求資料比較麻煩。

③ 響應的方式的程式碼其實只想宣告對應的響應資料。

現在使用springMVC,就是一個框架,就是將Servlet進行了封裝,提供一個公共的Servlet。該Servlet可以根據請求動態的呼叫對應的邏輯方法完成請求處理。

既然要在web.xml裡面寫很多的路徑,那麼現在就加一層,沒有什麼是加一層解決不了的,這個新加 的一層就是中心控制器,有了這個控制器,以後就不需要我們在web.xml裡面加那麼多的路徑轉發了,這個中心控制器就給我們解決了。
在這裡插入圖片描述

快速搭建一個springMVC的專案,我們和servlet專案做一個對比

1 先建立一個maven專案
在這裡插入圖片描述
2 新增web的支援
在這裡插入圖片描述
之前我們在web.xml裡面要配置很多的路徑才可以轉發到servlet的java程式碼裡面。現在因為加了一層,也就是使用了springMVC 就給我們加了一層,我們只需要匯入springMVC 的依賴,就可以使用這一層,將這一層配置到web.xml裡面就代替了之前web.xml裡面寫的那麼多的程式碼了,那麼現在我們需要在web.xml裡面寫什麼呢?

3 匯入springmvc的依賴
匯入這個,springmvc的依賴就匯入了
在這裡插入圖片描述

4 註冊DispatcherServlet 也就是在這個專案裡面加了一層,在web.xml裡面寫

<?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>
        <!--關聯一個springmvc的配置檔案:【servlet-name】-servlet.xml-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <!--啟動級別-1-->  伺服器一啟動,這個springMVC就啟動
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!--/ 匹配所有的請求;(不包括.jsp)-->
    <!--/* 匹配所有的請求;(包括.jsp)-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

之後還要寫一個springmvc-servlet.xml 配置檔案,這個裡面的就是springMVC的配置檔案。和springMVC的配置相關的就在這個配置檔案裡面寫就可以了。

在這裡插入圖片描述
裡面具體寫什麼呢?

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
         http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        ">
<!--    新增 處理對映器   這個是springMVC依賴裡面的,我們拿過來就可以-->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--    新增 處理器介面卡  這個是springMVC依賴裡面的,我們拿過來就可以-->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

    <!--檢視解析器:DispatcherServlet給他的ModelAndView-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
        <!--字首-->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!--字尾-->
        <property name="suffix" value=".jsp"/>
    </bean>


</beans>

也就是前端控制器之後要走處理對映器,處理器介面卡,檢視解析器 。我們在web.xml裡面配置了前端控制器.DispatcherServlet,在springmvc-servlet.xml裡面就要配置處理對映器,處理器介面卡,檢視解析器。

以上的配置就寫完了,之後寫java程式碼的controller層

在這裡插入圖片描述

相關文章