【SpringMVC筆記整理一】HelloWorld

版權聲明:本文爲 小異常 原創文章,非商用自由轉載-保持署名-註明出處,謝謝!
本文網址:https://blog.csdn.net/sun8112133/article/details/104610179







本篇博客還是以一個衆所周知的 HelloWorld 小案例講起,幫助大家快速瞭解 Spring MVC 這個主流框架。

本套筆記使用的 IDE 工具是 STSSTS 這個軟件其實就是一款 Eclipse,它與其他 Eclipse 不同的是它能更好的支持 Spring。它相當於 Eclipse 與 STS插件 的二合一,也是 Spring 官方推薦使用的),關於 STS 的有關內容我之前也寫過類似博客,在這裏不作過多講述,感興趣的小夥伴可以參考:STS軟件安裝

Spring MVC 版本選用的是目前比較新的 5.1.7


一、Spring MVC 概述

在講 HelloWorld 這個小案例之前,先簡單說一下什麼是 Spring MVC

Spring MVC 是 MVC 架構思想的實現,也是 Spring 中的一個組件,主要是用來 進行 WEB 開發的主流框架

MVC 是由 Model(模型)、View(視圖) 和 Controller(控制器) 這三部分組成的,它的工作流程是由 Controller 接收客戶端請求,調用 Model 相關代碼完成業務邏輯操作,將結果返回給 Controller,Controller 再結合 View 完成業務數據的視圖渲染,並將結果響應給客戶端。



二、HelloWorld

1、準備工作

先創建一個 Web 工程,如果你使用的是 Maven,可以先創建一個 Maven 的 Web 工程(可以參考: 在 Eclipse 中構建 Web 工程),並引入 Maven 依賴;如果你創建的是普通的 Web 工程,則直接引入 Jar 包即可。

1)Maven 依賴

<dependencies>
	<!-- Spring MVC 依賴 -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>5.1.7.RELEASE</version>
	</dependency>
    
	<!-- Servlet 依賴 -->
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>servlet-api</artifactId>
		<version>2.5</version>
	</dependency>
</dependencies>

2)Jar 包

Jar包下載地址:https://pan.baidu.com/s/14E7sqp-jLB-q4arLvuD-jw,提取碼:ae2o

1Jar包


2、目錄結構

1)Maven 目錄結構

1目錄結構1

2)使用 Jar 包的目錄結構

1目錄結構2


3、配置前端控制器

前端控制器(DispatcherServlet) 是用來集中處理請求的,它負責接收所有的請求,再將對應的請求轉發到其他程序處理,然後再接收處理後的結果,最終將處理好的結果返回給瀏覽器。其實它就是一箇中央處理器,每次請求都需要經過它。

我們需要在 web.xml 中配置 DispatcherServlet,如下:

<servlet>
	<servlet-name>springmvc</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<!-- 統一交給 springmvc.xml 進行處理 -->
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:springmvc.xml</param-value>
	</init-param>
</servlet>

<servlet-mapping>
	<servlet-name>springmvc</servlet-name>
	<!-- 接收所有的請求 -->
	<url-pattern>/</url-pattern>
</servlet-mapping>

4、創建 Spring MVC 配置管理文件

Spring MVC 配置管理文件 主要是用來根據不同的請求轉發到對應的業務邏輯類去處理,並獲取處理後的結果返回給 前端控制器

我們需要在 classpath 的根目錄下創建 springmvc.xml 配置文件(可根據目錄結構進行創建),主要配置自動掃描註解 以及 視圖解析器,其內容如下:

視圖解析器(ViewResolver) 的主要作用就是將邏輯視圖轉換成用戶可以看到的物理視圖。

<!-- 配置自動掃描 -->
<context:component-scan base-package="com.demo" />

<!-- 配置視圖解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix" value="/"></property>
	<property name="suffix" value=".jsp"></property>
</bean>

5、控制器

控制器 主要作用是爲了可以根據不同的 URL 進行相應的業務邏輯處理。

我們需要在 com.demo 這個包下創建一個控制器,其中 @RequestMapping("/hello") 這句話表示將來訪問 /hello 這個URL時,就能執行 index() 這個方法。內容如下:

注意: 這裏只能加 @Controller 註解,不僅要將該類放到 IOC 容器中,更主要的是爲了可以處理瀏覽器的請求,如果加了其他配置 Bean 的註解(如:@Component 等),那麼效果只能放到 IOC 容器中,並不能處理瀏覽器請求。

@Controller
public class HelloController {
	@RequestMapping("/hello")
	public String index() {
		System.out.println("index...");
		return "index";
	}
}

6、準備 JSP 頁面(index.jsp)

<h1>Hello Spring MVC!</h1>

7、瀏覽器測試

用瀏覽器訪問 /hello 這個 URL,如果能轉發到 index.jsp 頁面,表示測試成功!

1瀏覽器測試



三、可能會出現的問題

在做 HelloWorld 這個小例子可能會出現一些意想不到的問題,我在做 HelloWorld 這個小例子的時候,出現了下列問題,大家可以進行參考:

1、Maven 構建 Spring MVC 時報 ClassNotFoundException 異常

請參考:https://blog.csdn.net/sun8112133/article/details/104521255


2、項目報 Java 版本不匹配

請參考:https://blog.csdn.net/sun8112133/article/details/104521088



博客中若有不恰當的地方,請您一定要告訴我。前路崎嶇,望我們可以互相幫助,並肩前行!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章