Spring MVC入門3

看完這篇博客你能學到什么

  • 理解JSON的使用
  • 理解注解@PathVariable
  • 理解解注解@RequestPart
  • 理解cookie和Session的基本概念
  • 理解cookie和Session的區別
    如果想真正掌握,還需要自己勤加練習。

正文

JSON
JSON概念

JSON:JavaScript Object Notation 【JavaScript 對象表?法】
簡單來說:JSON就是?種數據格式, 有??的格式和語法, 使??本表??個對象或數組的信息, 因此JSON本質是字符串. 主要負責在不同的語?中數據傳遞和交換.
類似于:
? 國際通?語?-英語
? 中國56個?族不同地區的通?語?-普通話
有??的語法, 其他語?也認識.

JSON與Javascript的關系

沒有關系, 只是語法相似, js開發者能更快的上??已, 但是他的語法本??較簡單, 所以也很好學

JSON的語法:
  1. 數據在 鍵值對(Key/Value) 中
  2. 數據由逗號 , 分隔
  3. 對象? {} 表?
  4. 數組? [] 表?
  5. 值可以為對象, 也可以為數組, 數組中可以包含多個對象
  • 下面有一段JSON已經格式化的代碼,可以看一下
{
"squadName": "Super hero squad",
"homeTown": "Metro City",
"formed": 2016,
"secretBase": "Super tower",
"active": true,
"members": [{
"name": "Molecule Man",
"age": 29,
"secretIdentity": "Dan Jukes",
"powers": ["Radiation resistance", "Turning tiny", "Radiation
blast"]
}, {
"name": "Madame Uppercut",
"age": 39,
"secretIdentity": "Jane Wilson",
"powers": ["Million tonne punch", "Damage resistance", "Superhuman
reflexes"]
}, {
"name": "Eternal Flame",
"age": 1000000,
"secretIdentity": "Unknown",
"powers": ["Immortality", "Heat Immunity", "Inferno",
"Teleportation", "Interdimensional travel"]
}]
}

如果不按照格式化直接表示,其實JSON的也就是一個很長的字符串,只不過格式化以后更加易讀了,如:

{"squadName":"Super hero squad","homeTown":"Metro
City","formed":2016,"secretBase":"Super tower","active":true,"members":
[{"name":"Molecule Man","age":29,"secretIdentity":"Dan Jukes","powers":
["Radiation resistance","Turning tiny","Radiation blast"]},{"name":"Madame
Uppercut","age":39,"secretIdentity":"Jane Wilson","powers":["Million tonne
punch","Damage resistance","Superhuman reflexes"]},{"name":"Eternal
Flame","age":1000000,"secretIdentity":"Unknown","powers":["Immortality","Heat
Immunity","Inferno","Teleportation","Interdimensional travel"]}]}
  • 結合代碼的JSON說明
    在這里插入圖片描述
JSON的優點
  1. 簡單易?: 語法簡單,易于理解和編寫,可以快速地進?數據交換
  2. 跨平臺?持: JSON可以被多種編程語?解析和?成, 可以在不同的平臺和語?之間進?數據交換和
    傳輸
  3. 輕量級: 相較于XML格式, JSON數據格式更加輕量級, 傳輸數據時占?帶寬較?, 可以提?數據傳輸
    速度
  4. 易于擴展: JSON的數據結構靈活,?持嵌套對象和數組等復雜的數據結構,便于擴展和使?
  5. 安全性: JSON數據格式是?種純?本格式,不包含可執?代碼, 不會執?惡意代碼,因此具有較?
    的安全性
JSON的使用

接下里我們就要演示如何使用JSON來傳遞對象,詳細回應上一篇文章末尾的問題。還是依據我們上一次的Person對象的例子。
1,首先打開Postman
在這里插入圖片描述,2,編寫代碼,接收JSON對象, 需要使? @RequestBody 注解
在這里插入圖片描述

@PathVariable

作用是:獲取URL中參數
path variable: 路徑變量
和字?表達的意思?樣, 這個注解主要作?在請求URL路徑上的數據綁定
默認傳遞參數寫在URL上,SpringMVC就可以獲取到
實例如下:
在這里插入圖片描述

@RequestPart

作用:上傳?件
操作演示:
在這里插入圖片描述

cookie和Session的基本概念

先看一張圖:
在這里插入圖片描述

  • 舉個例子,你們可以邊看圖邊依據例子理解。
    假如有天你生病了要去醫院,首先你要去掛號吧,你請求掛號這件事就相當于一個http請求,此時工作人員就會在醫院后臺導入你的個人信息,就相當于創建了客戶的Session,創建完之后,會返回一個SessiId給你,而這個Sessionid就儲存在cookie中,而cookie就以就診卡的形式交到了你的手中,以后你再來看病只需要出示你的就診卡就行了,醫院的系統就會根據就診卡里存放的Sessionid來找到你的個人信息。
    這就是cookie與Session
  • Session的本質就是?個 “哈希表”, 存儲了?些鍵值對結構. Key 就是SessionID, Value 就是??信息(??信息可以根據需求靈活設計).
    如圖:
    在這里插入圖片描述
Cookie 和 Session 的區別
  • Cookie 是客?端保存??信息的?種機制. Session 是服務器端保存??信息的?種機制.
  • Cookie 和 Session之間主要是通過 SessionId 關聯起來的, SessionId 是 Cookie 和 Session 之間的橋梁
  • Cookie 和 Session 經常會在?起配合使?. 但是不是必須配合.
    • 完全可以? Cookie 來保存?些數據在客?端. 這些數據不?定是???份信息, 也不?定是
      SessionId
    • Session 中的sessionId 也不需要?得通過 Cookie/Set-Cookie 傳遞, ?如通過URL傳遞.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44532.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44532.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44532.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【YOLOv8】 用YOLOv8實現數字式工業儀表智能讀數(一)

上一篇圓形表盤指針式儀表的項目受到很多人的關注,咱們一鼓作氣,把數字式工業儀表的智能讀數也研究一下。本篇主要講如何用YOLOV8實現數字式工業儀表的自動讀數,并將讀數結果進行輸出,若需要完整數據集和源代碼可以私信。 目錄 &…

gin源碼分析

一、高性能 使用sync.pool解決頻繁創建的context對象,在百萬并發的場景下能大大提供訪問性能和減少GC // ServeHTTP conforms to the http.Handler interface. // 每次的http請求都會從sync.pool中獲取context,用完之后歸還到pool中 func (engine *Engin…

在C++中怎樣使用C庫

在C中使用C庫是一個相對直接的過程,因為C是從C發展而來的,并且與C高度兼容。這意味著你可以直接在C代碼中使用C庫函數、頭文件和變量,而無需進行特殊轉換。以下是一些基本的步驟和注意事項,用于在C中使用C庫: 1. 包含…

c語言位操作符相關題目之交換兩個數的值

文章目錄 一、題目二、方法11,思路2,代碼實現 三、方法21,思路2,代碼實現 四、方法31,思路2,代碼實現 總結 提示:以下是本篇文章正文內容,下面案例可供參考 一、題目 實現兩個變量的…

淺談PostCSS

1. 背景 css的預處理器語言(比如 sass, less, stylus)的擴展性不好,你可以使用它們已有的功能,但如果想做擴展就沒那么容易。 sass是很常用的css預處理器語言,在webpack中要使用它,…

設計模式使用場景實現示例及優缺點(結構型模式——組合模式)

結構型模式 組合模式(Composite Pattern) 組合模式使得用戶對單個對象和組合對象的使用具有一致性。 有時候又叫做部分-整體模式,它使我們樹型結構的問題中,模糊了簡單元素和復雜元素的概念,客戶程序可以像處理簡單元…

小米起訴“小米”商標侵權,索賠500萬!

近日浙江麗水有家叫小米的公司,因為商標侵權被小米科技起訴索賠500萬,需要變更企業名稱,官網也不能用“小米智能大家居”等,還有其它的賠償,普推知產商標老楊分析,“小米智能大家居”“小米”,后…

【Flask從入門到精通:第九課:數據庫基本操作、數據表操作以及數據操作】

數據庫操作 數據庫驅動(drivers)模塊:pymysql、MySQLDB 數據庫基本操作 在SQLAlchemy中,添加、修改、刪除操作,均由數據庫會話(sessionSM)管理。 會話用 db.session 表示。在準備把數據寫入數據庫前,要先…

交易平臺Zero Hash現已支持SUI交易

Zero Hash是一家領先的加密貨幣和穩定幣基礎設施平臺,為包括Stripe、Shift4和Franklin Templeton在內的公司提供支持,現在也支持對SUI的訪問。此舉使Zero Hash的客戶及其終端用戶能夠使用SUI。 提供API和SDK以及專注于無縫連接法幣、加密貨幣和穩定幣的…

讀人工智能全傳11人工智能會出什么錯

1. 人工智能會出什么錯 1.1. 一些報道是公正合理的,不過坦白地說,大部分報道都愚蠢得無可救藥 1.2. 一些報道頗有知識性和引導性,而大部分則是杞人憂天式的恐嚇 1.3. 滑稽的報道迎合了大眾對人工智能的“終結者式恐懼” 1.3.1. 我們創造出…

html設計(兩種常見的充電效果)

第一種 完整代碼&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title&…

方便快捷傳文件—搭建rsync文件傳輸服務器

比如我們有一個服務器&#xff0c;想把各個機器的文件都通過腳本傳給這臺機&#xff0c;用sftp或者直接rsync就必須輸密碼&#xff0c;肯定不行&#xff0c;做等效性免密又麻煩&#xff0c;怎么辦呢&#xff0c;這么辦&#xff01; 在服務端 yum -y install rsync #編輯&…

Vue3 關于scss預編譯中:deep 其中的deep如何理解

在SCSS預處理器中&#xff0c;:deep是一個偽類選擇器&#xff0c;用于選擇一個元素的所有后代元素&#xff0c;無論它們在DOM結構中的層級深度如何。換句話說&#xff0c;:deep選擇器是一個類似于CSS中的后代選擇器&#xff0c;但是它可以不考慮嵌套層級的限制&#xff0c;而是…

Android MessageQueue 源碼分析

類注釋 /*** Low-level class holding the list of messages to be dispatched by a* {link Looper}. Messages are not added directly to a MessageQueue,* but rather through {link Handler} objects associated with the Looper.** <p>You can retrieve the Messa…

【FineGrip】全光學感知:一種新的通用遙感圖像解釋任務和細粒度數據集(IEEE TGRS 2024)

摘要 目前的遙感解譯模型通常集中于單一的任務&#xff0c;如檢測、分割或字幕。但是&#xff0c;針對特定任務設計的模型無法實現綜合多層次解譯。該領域也缺乏多任務聯合解譯數據集。本文提出Panoptic Perception&#xff0c;一個新的任務和一個新的細粒度數據集&#xff08…

apache Kylin系列介紹及配置

Apache Kylin是一個開源的分布式分析引擎,用于OLAP(聯機分析處理)數據處理。它專門設計用于處理大規模的數據集,并提供快速的查詢和分析能力。 apache Kylin架構: Apache Kylin是一個開源的分布式分析引擎,旨在提供高性能、低延遲的OLAP(聯機分析處理)能力。下面是Ap…

nvim工具介紹

1. **seoul256.vim**: 一個基于首爾色彩的低對比度 Vim 顏色方案&#xff0c;適用于 256 色終端或 GVim。 2. **vim-easy-align**: Vim 插件&#xff0c;用于對齊文本。 3. **vim-go**: Vim 的 Go 語言插件&#xff0c;支持語法高亮、自動縮進等。 4. **coc.nvim**: 集成了 LSP…

GESP CCF C++ 二級認證真題 2024年6月

第 1 題 小楊父母帶他到某培訓機構給他報名參加CCF組織的GESP認證考試的第1級&#xff0c;那他可以選擇的認證語言有幾種&#xff1f;&#xff08; &#xff09; A. 1 B. 2 C. 3 D. 4 第 2 題 下面流程圖在yr輸入2024時&#xff0c;可以判定yr代表閏年&#xff0c;并輸出 2月…

介紹一款數據準實時復制(CDC)中間件 `Debezium`

簡介 文章開頭先介紹一下什么是CDC。數據準實時復制(CDC)是目前行內實時數據需求大量使用的技術。常用的中間件有Canal、Debezium、Flink CDC等 下面我們做一下對比 各有優缺點吧,本主要介紹一下Debezium中間件。 Debezium是什么 Debezium是一個為變更數據捕獲(CDC)提供…

Windows圖形界面(GUI)-SDK-C/C++ - 列表框(List)

公開視頻 -> 鏈接點擊跳轉公開課程博客首頁 -> 鏈接點擊跳轉博客主頁 目錄 列表框(List) 控件樣式 創建控件 初始控件 消息處理 示例代碼 列表框(List) 控件樣式 列表框&#xff08;ListBox&#xff09;是Windows圖形界面開發中常用的控件&#xff0c;允許用戶從…