国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Spring框架全系列】初識Spring MVC(上)

這篇具有很好參考價值的文章主要介紹了【Spring框架全系列】初識Spring MVC(上)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??哈嘍,大家好,我是小浪。接著上篇博客,我們學習了springboot配置日志文件,到此,那么springboot的內(nèi)容也更新的差不多了,由于是初學階段,所以不學習那么深入,那么我們學習框架都知道SSM,當前我們已經(jīng)學習完畢springboot了,那么今天就來學習第二個S,Spring MVC;????

??目錄

一、什么是SpringMVC?

二、為什么要學習Spring MVC?

三、我們需要學習的內(nèi)容

一、連接的功能

二、獲取參數(shù);

?四、后端參數(shù)重命名

五、傳遞JSON對象


一、什么是SpringMVC?

??1、構(gòu)建在Servlet(API)之上的;

??2、是一個web框架;

??3、來自于Spring web MVC模塊;

??定義:MVC 是 Model View Controller 的縮寫,它是軟件?程中的?種軟件架構(gòu)模式,它把軟件系統(tǒng)分為模型、視圖和控制器三個基本部分;
如下圖所示:
【Spring框架全系列】初識Spring MVC(上)

??Model(模型)是應?程序中?于處理應?程序數(shù)據(jù)邏輯的部分。通常模型對象負責在數(shù)據(jù)庫中存取數(shù)據(jù)。

??View(視圖)是應?程序中處理數(shù)據(jù)顯示的部分。通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。

??Controller(控制器)是應?程序中處理?戶交互的部分。通常控制器負責從視圖讀取數(shù)據(jù),
控制?戶輸?,并向模型發(fā)送數(shù)據(jù)。
??總結(jié):MVC 是?種思想,? Spring MVC 是對 MVC 思想的具體實現(xiàn)。

二、為什么要學習Spring MVC?

??因為現(xiàn)在絕?部分的 Java 項?都是基于 Spring 或 Spring Boot的,? Spring 的核?就是 Spring MVC。也就是說 Spring MVC 是 Spring 框架的核?模塊,? Spring Boot 是 Spring 的腳?架,因此我們可以推斷出,現(xiàn)在市?上絕?部分的 Java 項?約等于 Spring MVC 項?,足以體現(xiàn)需要學習Spring MVC的必要;
這里需要注意:Spring MVC其實就是Spring web,還記得我們之前創(chuàng)建springboot項目的時候勾選的依賴了嘛;
【Spring框架全系列】初識Spring MVC(上)

三、我們需要學習的內(nèi)容

一、連接的功能

1、首先還是我們先學習如何創(chuàng)建一個Spring MVC項目;

那么博主這里演示的是通過springboot項目添加spring web依賴,來創(chuàng)建一個Spring MVC項目,其實在之前咱們的SpringBoot項目已經(jīng)演示過了,只不過前幾篇博客寫的是springboot的知識;

創(chuàng)建的方法可以參考這篇博客:如何創(chuàng)建一個SpringBoot項目。

只不過我們在創(chuàng)建新項目的時候勾選Spring web依賴即可,如上圖所示;

2、選取一個合適的目錄,來創(chuàng)建一個新的Spring NVC項目,完成之后界面如下:

【Spring框架全系列】初識Spring MVC(上)

3、刪除多余的文件目錄;

【Spring框架全系列】初識Spring MVC(上)

4、鼠標右鍵此項目,點擊紅色箭頭指向,完成項目的初始化;

【Spring框架全系列】初識Spring MVC(上)

勾選maven,點擊OK;

【Spring框架全系列】初識Spring MVC(上)

5、觀察下面兩個文件變成藍色說明初始化完成;

【Spring框架全系列】初識Spring MVC(上)

6、在demo包下新建一個類TestController:

【Spring框架全系列】初識Spring MVC(上)

代碼:

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@RequestMapping("/user")//url路由注冊
@ResponseBody // 告訴程序要返回的是數(shù)據(jù)而不是頁面
@Controller // 讓框架啟動的時候加載當前類,別人才能訪問
public class TestController {

    @RequestMapping("/hi")
    public String sayHi(){
        return "hi,Spring MVC";
    }
}

7、運行啟動類DemoApplication,然后在瀏覽器訪問對應的url地址;

【Spring框架全系列】初識Spring MVC(上)

我們發(fā)現(xiàn),可以正常訪問,這里需要注意代碼中的那幾個注解,缺一不可,注意理解每個注解的作用,最好能達到記憶的效果;

這里說明一下,我們可以使用這個注解@RestController代替@ResponseBody 和 @Controller,能夠達到一樣的效果,非常的方便;

路由映射:所謂的路由映射指的是,當?戶訪問?個 url 時,將?戶的請求對應到程序中某個類
的某個方法的過程就叫路由映射;

一、@RequestMapping 是 post 還是 get 請求?

1、首先@RequestMapping肯定是get請求,因為我們通過瀏覽器來訪問,可以在瀏覽器頁面查看網(wǎng)頁源代碼來觀察到;F12查看網(wǎng)頁源代碼,點擊all;

【Spring框架全系列】初識Spring MVC(上)

我們借助postman來驗證 @RequestMapping是否為post方法;首先復制我們的url地址,放到postman里面,選擇post請求,點擊send;

【Spring框架全系列】初識Spring MVC(上)

由此得出結(jié)論@RequestMapping即支持get請求,又支持post請求;

我們可以顯示的指定 @RequestMapping 支持的請求方法,如下所示,這兩種寫法的意思一樣;
@RequestMapping(value = "/hi",method = RequestMethod.GET)
@GetMapping("/hi")

或者指定@RequestMapping 支持post請求方法;

    @PostMapping("/hi")
    @RequestMapping(value = "/hi",method = RequestMethod.POST)

當指定為post請求的時候,我們再次通過postman設置為get請求看能否訪問到;

【Spring框架全系列】初識Spring MVC(上)

我們發(fā)現(xiàn)報錯了,說明顯示指定請求生效了;

二、獲取參數(shù);

1、我們可以在原先的函數(shù)sayH中提供一個參數(shù)name,用來舉例;

【Spring框架全系列】初識Spring MVC(上)

2、運行啟動類,在瀏覽器url地址里面輸入:http://localhost:8080/user/hi?name=zhangsan

【Spring框架全系列】初識Spring MVC(上)

注意當有多個參數(shù)時,前后端進?參數(shù)匹配時,是以參數(shù)的名稱進?匹配的,因此參數(shù)的位置是不影響后端獲取參數(shù)的結(jié)果;

注意在Spring MVC中傳遞參數(shù)一一定要傳包裝類型,而不是基礎類型;

在TestController下新建一個方法;

    @RequestMapping("/can")
    public String sayHi2(int id){
        return "id="+id;
    }

瀏覽器url中訪問:

【Spring框架全系列】初識Spring MVC(上)

我們發(fā)現(xiàn)直接會報一個500回來,為什么呢?我們把傳遞參數(shù)的類型換成包裝類試一下;

    @RequestMapping("/can")
    public String sayHi2(Integer id){
        return "id="+id;
    }

運行結(jié)果:

【Spring框架全系列】初識Spring MVC(上)

當需要一個基礎類型,但又忘記傳遞的時候,使用基礎類型會報錯,使用包裝類型不會,只是值為null;

如何進行熱部署?

1、File -> settilngs ->找到紅色箭頭指向的框,勾選后面那個,點擊OK;

【Spring框架全系列】初識Spring MVC(上)

2、開啟熱部署,點擊搜索,輸入registry,點擊第一個;

【Spring框架全系列】初識Spring MVC(上)

3、老版本ide(2021之前)的走這一步,新版本不用;

【Spring框架全系列】初識Spring MVC(上)

idea2021之后的版本:

【Spring框架全系列】初識Spring MVC(上)

到這一步,springboot熱部署就已經(jīng)完成了;那么idea熱部署的本質(zhì)是重啟spring boot項目,一般會有3s左右的延遲;

三、傳遞對象;

1、在demo包下新建一個類User;

【Spring框架全系列】初識Spring MVC(上)

User類代碼:

package com.example.demo.controller;

import lombok.Data;

@Data
public class User {
    private int id;
    private String name;
    private int age;
}
TestController中新增方法ShowUser;
    @GetMapping("/show-user")
    public String ShowUser(User user){
        return user.toString();
    }

瀏覽器輸入url地址,傳遞相應參數(shù)(前端實現(xiàn))http://localhost:8080/user/show-user?id=1&name=zhangsan&age=20

【Spring框架全系列】初識Spring MVC(上)

?四、后端參數(shù)重命名

某些特殊的情況下,前端傳遞的參數(shù) key 和我們后端接收的 key 可以不?致,?如前端傳遞了?個t 給后端,?后端?是以 starttime 字段來接收的,這樣就會出現(xiàn)參數(shù)接收不到的情況,如果出現(xiàn) 這種情況,我們就可以使? @RequestParam 來重命名前后端的參數(shù)值。
比如現(xiàn)在是原始的代碼:
    @GetMapping("/show-time")
    public String showtime(String t1,String t2){
        return "開始時間"+t1 +" 結(jié)束時間"+t2;
    }

看起來非常的丑,那么我們可以使用@RequestParam 來重命名前后端的參數(shù)值:

    @GetMapping("/show-time")
    public String showtime(@RequestParam("t1") String starttime,@RequestParam("t2") 
            String endtime){
        return "開始時間"+starttime +" 結(jié)束時間"+endtime;
    }

瀏覽器輸入url地址,同時傳參數(shù)t1,t2;

http://localhost:8080/user/show-time?t1=2023.5.1&t2=2023.5.11

【Spring框架全系列】初識Spring MVC(上)

要注意,使用這個注解@RequestParam的時候,必須要傳遞參數(shù),否則會報錯;

【Spring框架全系列】初識Spring MVC(上)

當然我們可以通過設置 @RequestParam 中的 required=false 來避免不傳遞時報錯;

    @GetMapping("/show-time")
    public String showtime(@RequestParam(value = "t1",required = false) String starttime,
                           @RequestParam(value = "t2",required = false) String endtime){
        return "開始時間"+starttime +"| 結(jié)束時間"+endtime;
    }

五、傳遞JSON對象

1、在postman里面設置以下操作;
【Spring框架全系列】初識Spring MVC(上)

2、TestController類下代碼:

    @PostMapping("/show-json-user")
    public String showJson(@RequestBody User user){
        return user.toString();
    }

3、在postman中進行測試;http://localhost:8080/user/showJson

【Spring框架全系列】初識Spring MVC(上)

????OK,那么今天的Spring MVC學習內(nèi)容就到這里啦,下篇博客我們繼續(xù)來肝Spring MVC剩下的內(nèi)容,感謝閱讀,點個訂閱,以便于及時收到更新的信息哈!??????文章來源地址http://www.zghlxwxcb.cn/news/detail-470236.html

到了這里,關于【Spring框架全系列】初識Spring MVC(上)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【Spring框架全系列】如何創(chuàng)建一個SpringBoot項目

    【Spring框架全系列】如何創(chuàng)建一個SpringBoot項目

    ??哈嘍,大家好,我是小浪。前幾篇博客我們已經(jīng)介紹了什么是Spring,以及如何創(chuàng)建一個Spring項目,OK,那么單單掌握Spring是完全不夠的,Spring的家族體系十分強大,我們還需要深入學習,以便于我們后續(xù)達到能獨立做項目的水平。今天我們來學習SpringBoot。?? ??目錄 一、

    2024年02月03日
    瀏覽(24)
  • 【Spring框架全系列】Spring更簡單的讀取和存儲對象

    【Spring框架全系列】Spring更簡單的讀取和存儲對象

    ????哈嘍,大家好,我是小浪。上篇博客我們介紹了如何創(chuàng)建一個spring項目,并且如何的存、取對象,介紹了相關方法,那么本篇博客將接著上篇博客的內(nèi)容介紹如何更加簡單的讀取和存儲對象。 ??在 Spring 中想要更簡單的存儲和讀取對象的核?是使?注解,也就是我們接

    2024年02月05日
    瀏覽(20)
  • 云安全系列4:解析云安全工具集

    云安全系列4:解析云安全工具集

    隨著組織越來越多地將數(shù)據(jù)和應用轉(zhuǎn)移到云端,云安全在確保工作負載安全方面變得至關重要。Gartener 就表示:“云優(yōu)先戰(zhàn)略現(xiàn)在已十分普遍,甚至在不愿承擔風險的企業(yè)機構(gòu)中也是如此。但由于缺乏確保安全云計算部署所必需的技能和工具,因此執(zhí)行仍然受到阻礙。” 在了

    2024年02月02日
    瀏覽(28)
  • Radware負載均衡-全系列產(chǎn)品證書更新(二)

    Radware負載均衡-全系列產(chǎn)品證書更新(二)

    簡單介紹一下關于Radware APSolute Vision平臺的證書更新。 更新證書有兩種方式,一種為自簽發(fā),另外一種為導入第三方證書,且更新證書僅能通過命令行的形式更新證書。兩種方式都會導致APSolute Vision平臺設備的重啟(老版本,最新版本只會導致當前訪問vision會話中斷),請注

    2024年01月16日
    瀏覽(22)
  • FreeRTOS 全系列筆記——基于V10.4

    基于crotex-m處理器新建FreeRTOS工程 為什么使用嵌入式實時操作系統(tǒng)(RTOS) FreeRTOS——創(chuàng)建任務 FreeRTOS的任務調(diào)度和管理 FreeRTOS-內(nèi)核鏈表數(shù)據(jù)結(jié)構(gòu) FreeRTOS-內(nèi)核對時間的測量 FreeRTOS-內(nèi)核中的鉤子(Hook)函數(shù) FreeRTOS-軟件定時器的使用 FreeRTOS-軟件定時器的實現(xiàn)原理 FreeRTOS-延后執(zhí)行機制

    2024年02月04日
    瀏覽(26)
  • 小米紅米全系列官方原廠預裝系統(tǒng)

    小米紅米全系列官方原廠預裝系統(tǒng)

    小米紅米全系列官方原廠預裝系統(tǒng)恢復鏡像 1.全系列為原廠預裝恢復鏡像系統(tǒng),專機專用 2.自帶原機所有驅(qū)動,主題,Logo,Office等,再次恢復原廠 鏈接: https://pan.baidu.com/s/1snKOsH3OMl3GZLqeAf-GLA?pwd=8888 3.支持型號如下: Xiaomi Book 12.4 二合一 Xiaomi Book Air 13 ?Redmi G (Pro) 游戲本 2022 銳

    2024年02月11日
    瀏覽(21)
  • 【云安全系列】Seccomp—云安全syscall防護利器

    【云安全系列】Seccomp—云安全syscall防護利器

    Seccomp(全稱 “Secure computing”),早在 2.6.12 版本(2005年3月8日)就引入到內(nèi)核中,是通過只允許內(nèi)核支持部分 syscall(系統(tǒng)調(diào)用),或者拒絕內(nèi)核認為可能有危險的 syscall 集合的方式,來限制一個進程所支持的 syscall調(diào)用。最初,Seccomp 只允許使用read、 write、 _exit、sigreturn

    2024年02月08日
    瀏覽(26)
  • Oracle全系列版本官網(wǎng)下載保姆及教程

    Oracle全系列版本官網(wǎng)下載保姆及教程

    下面以下載Oracle12cR2為例說明下載的整個過程。 基本步驟如下: 先注冊一個Oracle賬號并登錄; 進入到客戶下載頁面搜索要下載的數(shù)據(jù)庫版本; 得到Oracle下載器(Oracle_SSN_DML_xxxxx.exe),注意:每下載一次都會得到一個Oracle的下載器; 運行下載器進行下載 官網(wǎng)地址:https://www.or

    2024年01月17日
    瀏覽(24)
  • 蘋果發(fā)布會:iPhone 15全系列手機正式發(fā)布

    蘋果發(fā)布會:iPhone 15全系列手機正式發(fā)布

    在人們的高度關注和熱切期待中,蘋果公司在北京時間9月13日凌晨1點,準時舉辦了秋季新品發(fā)布會,并如期發(fā)布了iPhone 15系列。此次發(fā)布會以“好奇心上頭”為主題,吸引了全球消費者和科技愛好者的目光。 在發(fā)布會上,蘋果公司向全球觀眾展示了iPhone 15系列的手機,iPho

    2024年02月09日
    瀏覽(34)
  • 【Intel/Altera】 全系列FPGA最新匯總說明,持續(xù)更新中

    【Intel/Altera】 全系列FPGA最新匯總說明,持續(xù)更新中

    ????????2023年11月14日英特爾 FPGA中國技術日, Intel剛發(fā)布了新的FPGA系列 ,官網(wǎng)信息太多,我這里結(jié)合以前的信息, 簡單匯總更新一下,方便大家快速了解Intel/Altera FPGA家族。 ? 目錄 前言 Altera和Intel 型號匯總 1. Agilex 系列 1.1英特爾? Agilex? 7 FPGA 和 SoC FPGA 1.2英特爾? Ag

    2024年02月04日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包