史上最簡單的 Spring MVC 教程(一)

weixin_33912445發表於2017-12-29

1 簡介


Spring MVC 屬於 SpringFrameWork 的後續產品,已經融合在 Spring Web Flow 裡面。Spring 框架提供了構建 Web 應用程式的全功能 MVC 模組,而 Spring MVC 就是其中最優秀的 MVC 框架。自從 Spring 2.5 版本釋出後,由於支援註解配置,易用性得到了大幅度的提高;Spring 3.0 更加完善,實現了對 Struts 2 的超越。從現階段來看,Spring MVC 是當前應用最多的 MVC 框架,而且在很多公司,通常會把 Spring MVC 和 Mybatis 整合起來使用。

2 框架原理


在Spring MVC框架中,從“Request(請求)”開始,依次進入“DispatcherServlet(核心分發器)” —> “HandlerMapping(處理器對映)” —> “Controller(控制器)” —> “ModelAndView(模型和檢視)” —> “ViewResolver(檢視解析器)” —> “View(檢視)” —> “Response(響應)”結束,其中DispatcherServlet、HandlerMapping和ViewResolver 只需要在XML檔案中配置即可,從而大大提高了開發的效率,特別是對於 HandlerMapping 框架為其提供了預設的配置。Spring MVC 框架的結構圖如下所示:

2827798-9ee7ef79ded98b49.png
Spring MVC 框架圖

3 搭建 Spring MVC 框架


首先,我們需要下載 Spring MVC 框架的各種依賴包,下載地址為:Spring MVC框架的各種依賴包;然後,建立 Java Web 專案,專案名隨意取,在這裡,我們們就不妨取為“springmvc”,構建專案結構圖如下:

2827798-ab958a93f31d5166
專案結構圖

在“WEB-INF”目錄下,建立“lib”目錄,匯入 Spring MVC 框架的相關依賴包,同時,在“External Libraries”中也匯入相同的 jar 包,其中對於“lib”目錄,我們直接把 jar 包複製過來就可以;但是對於“External Libraries”,我們就得通過“Project Structure”進行匯入啦,具體 jar 包的匯入方法可以參考:詳述 IntelliJ IDEA 之 新增 jar 包。至於需要匯入的 jar 包,在我們先前下載的“Spring MVC框架的各種依賴包”中都可以找到,下面附上需要匯入的 jar 名稱:

spring-aop-3.2.2.jar                        AOP
spring-aspects-3.2.2.jar                    AOP
spring-beans-3.2.2.jar                      核心包
spring-context-3.2.2.jar                    擴充套件包
spring-context-support-3.2.2.jar            對擴充套件包支援
spring-core-3.2.2.jar                       核心包
spring-expression-3.2.2.jar spring          表示式
spring-web-3.2.2.jar                        web b/s
spring-webmvc-3.2.2.jar                     springmvc

com.springsource.org.aopalliance-1.0.0.jar                  AOP
com.springsource.org.apache.commons.logging-1.1.1.jar       通用日誌

接下來,依次建立控制器Controller(即Java類):

package spring.mvc.controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

/** * Created by 維C果糖 on 2017/1/24. */
public class CeshiController extends AbstractController {
    @Override
    protected ModelAndView handleRequestInternal(javax.servlet.http.HttpServletRequest request,
                                                 javax.servlet.http.HttpServletResponse response) throws Exception {

        System.out.println(request.getRequestURI());  // 獲取Controller的名稱,即地址

        return new ModelAndView("index");  // 邏輯名
    }
}

配置 web.xml 檔案,主要是配置 DispatcherServlet,即核心分發器:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <!-- 配置 DispatcherServlet,對所有字尾為action的url進行過濾 -->
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>
</web-app>

編輯 JSP 頁面,用於顯示,在這裡需要將該 JSP 頁面複製到 pages 目錄一份,稍後會用到:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>Spring MVC</title>
    </head>
<body>
    This is my Spring MVC of web!
</body>
</html>

建立 action-servlet.xml 檔案,主要是宣告 Controller 和配置 ViewResolver,即控制器和檢視解析器:

<?xml version="1.0" encoding="UTF-8"?>
<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 http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">

    <!-- 宣告 Controller -->
    <bean name="/home.action" class="spring.mvc.controller.CeshiController" />

    <!-- 內部資源檢視解析器,字首 + 邏輯名 + 字尾 -->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

操作完以上步驟後,我們們就已經初步搭建了 Spring MVC 框架,接下來,再配置一下 web 伺服器就可以成功執行啦!在這裡,作者用的 web 伺服器是 tomcat,配置完的結果如下所示:


2827798-d7c57cfee73cfff3.png
Tomcat配置

其中,標號1,為tomcat伺服器的名稱,可以隨意取名;標號2,為web伺服器預設啟動的瀏覽器;標號3,為訪問路徑;標號4,為虛擬機器引數配置,在此沒有進行配置,即採用了預設的配置;標號5,為Java執行環境配置;標號6,為埠號配置;標號7,為部署tomcat伺服器,點選進入後,配置如下:

2827798-1aaffc1e6d0156fa
部署tomcat

至此,Spring MVC 框架搭建成功,執行程式後,將在 Chrome 瀏覽器顯示如下內容:

2827798-aeb1c13635b5e9fb
JSP頁面

溫馨提示:在此專案中,由於使用的是 IntelliJ IDEA ,因此不用我們們自己建立lib包,直接將jar包導到External Libraries中即可。

相關文章