最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringMVC 概念引入與連接的操作方法

 更新時間:2025年05月06日 10:09:55   作者:愛吃烤雞翅的酸菜魚  
今天來給大家?guī)鞸pring相關的學習,主要內容有概念的講解以及如何分別通過Java代碼和工具Postman來建立連接,感興趣的朋友一起看看吧

1.前言

哈嘍大家好,今天來給大家?guī)鞸pring相關的學習,主要內容有概念的講解以及如何分別通過Java代碼和工具Postman來建立連接,那么話不多說讓我們開始吧。

2.正文

2.1SpringMVC是什么

Spring MVC 是 Spring 框架的一個模塊,專門用于構建 Web 應用程序。它基于經典的 MVC 設計模式(Model-View-Controller),將應用程序分為三層:

  • Model(模型):封裝數(shù)據(jù)(如數(shù)據(jù)庫查詢結果)。
  • View(視圖):展示數(shù)據(jù)(如 HTML 頁面)。
  • Controller(控制器):處理用戶請求,協(xié)調 Model 和 View。

官方文檔:

Spring Web MVC :: Spring Framework

https://docs.spring.io/spring-framework/reference/web/webmvc.html

使用它有哪些優(yōu)點呢:

  • 簡化開發(fā):通過注解和配置減少代碼量。
  • 靈活擴展:支持多種視圖技術(JSP、Thymeleaf 等)。
  • 與 Spring 生態(tài)無縫集成:如 Spring Security、Spring Data 等。 

那么SpringMVC是如何處理用戶發(fā)送過來的Http請求呢:

DispatcherServlet(前端控制器)

  • 所有請求的入口,相當于“調度中心”。
  • 負責將請求分發(fā)給對應的 Controller。

HandlerMapping(處理器映射器)

  • 根據(jù)請求的 URL,找到對應的 Controller 和方法。

Controller(控制器)

  • 處理業(yè)務邏輯(如查詢數(shù)據(jù)庫),返回 Model 和視圖名稱。

ViewResolver(視圖解析器)

  • 將視圖名稱(如 "home")解析為具體的視圖(如 /WEB-INF/home.jsp)。

View(視圖)

  • 渲染頁面,將 Model 數(shù)據(jù)展示給用戶。

流程: 

用戶請求 → DispatcherServlet → HandlerMapping → Controller → 返回 ModelAndView → ViewResolver → View → 響應給用戶

 2.2詳解@RequestMapping注解

@RequestMapping 是 Spring MVC 中最核心的注解之一,用于將 HTTP 請求映射到具體的控制器方法。它支持靈活的 URL 匹配、請求方法限制、參數(shù)過濾等功能。(學習這一部分時,建議搭配后文使用)

基本用法:在類或方法上使用 @RequestMapping,指定 URL 路徑:

@Controller
@RequestMapping("/user")  // 類級別的公共路徑,類路徑
public class UserController {
    @RequestMapping("/info")  // 完整路徑是 /user/info,方法路徑
    public String getUserInfo() {
        return "user_info"; 
    }
}

那么該注解到底是GET請求還是POST請求呢?這個時候我們就要來借助以下抓包工具:

測試代碼:

package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class test1 {
    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }
}

此時可以看出來是GET請求。那有沒有可能是POST請求呢?讓我們來測試下:

我們在static創(chuàng)建一個HTML文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/hello" method="post">
    <input type = "submit" value = "傳送">
</form>
</body>
</html>

就會發(fā)現(xiàn)此時是POST請求 。

那么我們如何定義該注解是GET請求還是POST請求呢?

@RequestMapping(method=GET)
@RequestMapping(method=POST)

利用method設置一下即可。 

總結下核心屬性:

屬性作用示例
valuepath指定 URL 路徑@RequestMapping("/user")
method限制請求方法(GET、POST 等)method = RequestMethod.POST
params要求請求必須包含特定參數(shù)params = "id=100"(參數(shù) id 必須為 100)
headers要求請求頭包含特定字段headers = "Content-Type=text/json"
consumes限制請求的 Content-Type(如接收 JSON)consumes = "application/json"
produces指定響應的 Content-Type(如返回 JSON)produces = "application/json"

2.3創(chuàng)建Spring項目

既然我們學習了該注解,那么就要想辦法應用出來,所以我們們需要先創(chuàng)建一個Spring項目

在idea社區(qū)版裝上Spring插件或者使用Spring專業(yè)版,創(chuàng)建項目時勾選:

接著導入SpringWeb相關模塊:

這樣就完成了Spring項目的創(chuàng)建。

2.4建立連接

下面我們在idea中建立連接:

package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class test1 {
    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }
}

資源路徑:類路徑+方法路徑。 

核心注解說明:

1. @RestController

  • 是 @Controller + @ResponseBody 的組合注解。
  • 作用
    • 標記這個類是一個控制器,能接收 HTTP 請求。
    • 所有方法的返回值會直接寫入 HTTP 響應體(Response Body),而不是跳轉到視圖頁面。
  • 適合場景:開發(fā) RESTful API(返回 JSON/XML 數(shù)據(jù))。

2. @RequestMapping("/hello")

  • 作用:將 HTTP 請求路徑 /hello 映射到 hello() 方法。
  • 默認行為
    • 支持所有 HTTP 方法(GET、POST、PUT 等)。
    • 返回的字符串 "hello" 會直接作為響應內容返回給客戶端。

當我們運行項目并在瀏覽器訪問訪問 http://localhost:8080/hello時: 

這樣就代表連接成功。

如果注解相同,那么就必須保證資源路徑(類路徑+方法路徑)不同: 

package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class test1 {
    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }
    @RequestMapping("/hello")
    public String hello1(String name){ return "hello" + name; }
}

項目直接啟動報錯并退出:

紅線標注部分“error”就是錯誤日志了。

package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class test1 {
    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }
    @RequestMapping("/hello1")
    public String hello1(String name){ return "hello" + name; }
}

 這樣即可正常運行:

2.5Postman

官網(wǎng):Download Postman | Get Started for Free

https://www.postman.com/downloads/

Postman是什么呢:

Postman 是一款API 開發(fā)與測試工具,被廣泛用于設計、調試、測試和文檔化 HTTP 接口。無論是后端開發(fā)者、測試工程師,還是前端開發(fā)者,都可以用它快速驗證 API 的功能和可靠性。

  • 發(fā)送 HTTP 請求(GET/POST/PUT/DELETE 等)。
  • 自動化測試 API 接口。
  • 管理 API 集合(分類、分組、共享)。
  • 生成 API 文檔。
  • 模擬服務器(Mock Server)。
  • 團隊協(xié)作(共享工作區(qū))。

頁面看起來還是很清新的。

就還拿上一段代碼來測試,第二個方法還有一個參數(shù)name,我們在Postman里可以快捷在請求中添加參數(shù),注意參數(shù)名一定要相同。

發(fā)送成功。

3.小結

今天的分享到這里就結束了,喜歡的小伙伴點點贊點點關注,你的支持就是對我最大的鼓勵,大家加油!

到此這篇關于SpringMVC 概念引入與連接的文章就介紹到這了,更多相關SpringMVC 概念引入與連接內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MyBatis的注解使用、ORM層優(yōu)化方式(懶加載和緩存)

    MyBatis的注解使用、ORM層優(yōu)化方式(懶加載和緩存)

    這篇文章主要介紹了MyBatis的注解使用、ORM層優(yōu)化方式(懶加載和緩存),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 通過AOP環(huán)繞通知如何實現(xiàn)事務控制

    通過AOP環(huán)繞通知如何實現(xiàn)事務控制

    這篇文章主要介紹了通過AOP環(huán)繞通知如何實現(xiàn)事務控制的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java實現(xiàn)Z字形掃描程序

    java實現(xiàn)Z字形掃描程序

    這篇文章主要為大家詳細介紹了java實現(xiàn)Z字形掃描程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • SpringBoot+jsp項目啟動出現(xiàn)404的解決方法

    SpringBoot+jsp項目啟動出現(xiàn)404的解決方法

    這篇文章主要介紹了SpringBoot+jsp項目啟動出現(xiàn)404的解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • java selenium 操作瀏覽器實例

    java selenium 操作瀏覽器實例

    本文主要介紹java selenium 操作瀏覽器,這里整理了相關資料,并附示例代碼,有需要的小伙伴可以參考下
    2016-08-08
  • Java形參和實參的實例之Integer類型與Int類型用法說明

    Java形參和實參的實例之Integer類型與Int類型用法說明

    這篇文章主要介紹了Java形參和實參的實例之Integer類型與Int類型用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 詳解Spring Boot中MyBatis的使用方法

    詳解Spring Boot中MyBatis的使用方法

    mybatis初期使用比較麻煩,需要各種配置文件、實體類、dao層映射關聯(lián)、還有一大推其它配置。當然mybatis也發(fā)現(xiàn)了這種弊端。下面通過本文給大家詳細介紹Spring Boot中MyBatis的使用方法,感興趣的朋友一起看看吧
    2017-07-07
  • java反射獲取一個object屬性值代碼解析

    java反射獲取一個object屬性值代碼解析

    這篇文章主要介紹了java反射獲取一個object屬性值代碼解析,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • java實現(xiàn)馬踏棋盤的完整版

    java實現(xiàn)馬踏棋盤的完整版

    這篇文章主要為大家詳細介紹了java實現(xiàn)馬踏棋盤的完整版,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java多線程之讀寫鎖分離設計模式

    Java多線程之讀寫鎖分離設計模式

    這篇文章主要介紹了Java多線程讀寫鎖分離設計模式,主要利用Java到嗎完成read read 并行化、read write 不允許、write write 不允許幾項任務,需要的朋友可以參考一下
    2021-10-10

最新評論

韶关市| 砚山县| 沾益县| 开鲁县| 汶上县| 方正县| 胶南市| 新沂市| 前郭尔| 灵台县| 肇源县| 张家川| 嵩明县| 海安县| 托克逊县| 海安县| 道真| 蓝山县| 枞阳县| 灵宝市| 股票| 尉氏县| 云龙县| 克东县| 镇江市| 黄石市| 咸宁市| 开阳县| 阳东县| 兰考县| 迁安市| 黄浦区| 明星| 襄城县| 伊金霍洛旗| 台山市| 汕头市| 鹿泉市| 麻阳| 无棣县| 舒兰市|