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