你的第一個SpringMVC程式

BLBALDMAN發表於2024-06-30

1.建立Maven模組

1.1 新建一個父模組

1.2修改一下JDK版本這裡選擇JDK21

1.3 父模組中建立一個子模組,接下來的操作將在子模組中進行

2.新增web支援

2.1設定本地Maven倉庫(非必須)

2.2 在springmvc-001的pom.xml檔案中修改打包方式為war同時新增web所需要的依賴,由於Servlet依賴Tomcat會提供所以scope為provided

 <!--修改打包方式-->
    <packaging>war</packaging>

    <!--新增依賴-->
    <dependencies>
        <!-- Spring MVC依賴 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>6.1.4</version>
        </dependency>
        <!--日誌框架Logback依賴-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.5.3</version>
        </dependency>
        <!--Servlet依賴-->
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>6.0.0</version>
            <scope>provided</scope>
        </dependency>
        <!--Spring6和Thymeleaf整合依賴-->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring6</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>
    </dependencies>

2.3 在src\main 資料夾下建立一個webapp資料夾,作為Web資源目錄(Web Resource Directory)。可以看到webapp資料夾,中間小點亮起,即為建立成功。

2.4 假設webapp中間小點沒有亮起,那麼需要在Project Structure Module中設定,配置web.xml檔案也在該位置。

3.配置web.xml檔案

3.1 建立web.xml檔案。檔案位置應該是在webapp\WEB-INF下。



3.2 配置web.xml檔案。由於SpringMVC架構中是靠DispatcherServlet對請求進行統一處理,所以需要配置DispatcherServlet<url-pattern>中的 /表示當請求不是xx.jsp的時候,DispatcherServlet來負責處理本次請求。

 <servlet>
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    

4.編寫控制器

4.1 DispatcherServlet接收到請求之後,會根據請求路徑分發到對應的Controller,Controller來負責處理請求的核心業務。Controller類只是一個普通的java類但是需要由IOC接管,所以需要新增註解。

5.配置springmvc-servlet.xml檔案

5.1 建立SpringMVC的配置檔案,SpringMVC框架有它自己的配置檔案,該配置檔案的名字預設為:<servlet-name>-servlet.xml,預設存放的位置是WEB-INF 目錄下

5.2在springmvc-servlet.xml檔案中配置元件掃描。spring掃描這個包中的類,將這個包中的類例項化並納入IoC容器的管理。

5.3 配置thymeleaf檢視解析器

 <bean id="thymeleafViewResolver" class="org.thymeleaf.spring6.view.ThymeleafViewResolver">
        <!--作用於檢視渲染的過程中,可以設定檢視渲染後輸出時採用的編碼字符集-->
        <property name="characterEncoding" value="UTF-8"/>
        <!--如果配置多個檢視解析器,它來決定優先使用哪個檢視解析器,它的值越小優先順序越高-->
        <property name="order" value="1"/>
        <!--當 ThymeleafViewResolver 渲染模板時,會使用該模板引擎來解析、編譯和渲染模板-->
        <property name="templateEngine">
            <bean class="org.thymeleaf.spring6.SpringTemplateEngine">
                <!--用於指定 Thymeleaf 模板引擎使用的模板解析器。模板解析器負責根據模板位置、模板資源名稱、檔案編碼等資訊,載入模板並對其進行解析-->
                <property name="templateResolver">
                    <bean class="org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver">
                        <!--設定模板檔案的位置(字首)-->
                        <property name="prefix" value="/WEB-INF/templates/"/>
                        <!--設定模板檔案字尾(字尾),Thymeleaf副檔名不一定是html,也可以是其他,例如txt,大部分都是html-->
                        <property name="suffix" value=".html"/>
                        <!--設定模板型別,例如:HTML,TEXT,JAVASCRIPT,CSS等-->
                        <property name="templateMode" value="HTML"/>
                        <!--用於模板檔案在讀取和解析過程中採用的編碼字符集-->
                        <property name="characterEncoding" value="UTF-8"/>
                    </bean>
                </property>
            </bean>
        </property>
    </bean>

6.提供檢視

6.1 根據檢視解析器中的字首路徑在WEB-INF目錄下建立 templates 資料夾,以後的檢視都放在這個檔案下。

6.2 在templates建立index.html,用於測試

7.編寫處理請求,返回邏輯名稱

7.1控制器FirstController處理請求返回邏輯檢視名稱。實際上 字首+邏輯名稱+字尾為最終地址

8.測試

8.1配置tomcat



相關文章