java spring -framework -mvc

工程demo:myapp011工程下“_05mvcboot01” ?model

目錄

1、Spring MVC和MVC

2、創建項目:

3、處理請求

4、HTTP協議 超文本傳輸協議

????? ?4.1、 HTTP和HTTPS的區別

? ? ? ? 4.2、SSL證書

? ? ? ? 4.3、請求和響應

? ? ? ? ? ? ? ? 4.3.1、請求

? ? ? ? ? ? ? ? 4.3.2、響應

5、數據的傳遞與接收

? ? ? ? 5.1、客戶端傳遞數據到服務端

? ? ? ? 5.2、服務端接收數據

6、URL

7、示例


1、Spring MVC和MVC

  • ????????Spring MVC:用于快速開發網站,屬于spring framework中的核心框架

    • MVC是設計思想,將軟件按照模型、視圖、控制器來劃分,為了解耦


????????????????M :model,模型層,負責業務邏輯判斷,數據庫存取
????????????????V:View,視圖層,負責界面展示,向用戶呈現數據的方式(html頁面,圖片,文本等)
????????????????C:Controller,控制器負責接收用戶請求,并根據請求調用 相應的模型來處理業務邏輯

2、創建項目:

勾選:web => spring web

????????運行application后,輸入網址,即可訪問
????????//相當于訪問了static下的index.html
????????http://localhost:8080/index.html

3、處理請求

????????Spring mvc就是用來處理請求的,這兩種請求,處理的方式大不一樣
?????????? ?靜態請求:所有人訪問,得到的結果是一樣的,比如:新聞
?? ?????????動態請求:每個人訪問,得到的結果是不一樣的,比如:登錄

????????spring MVC處理靜態請求
?? ?????????static有調整,需要rebuild一下
????????spring MVC處理動態請求
?? ?????????url地址:http://localhost:8080/v1/users/login


????????Shift + F5 瀏覽器清理緩存,刷新頁面

4、HTTP協議 超文本傳輸協議

????? ?4.1、 HTTP和HTTPS的區別

???????
?? ?????????HTTP:
?? ??? ?????????1、數據以明文的方式在互聯網中傳輸,不安全
?? ??? ?????????2、數據傳輸效率高
?? ??? ?????????3、默認端口號:80
?? ??? ?????????4、不需要SSL證書的認證
?? ?????????HTTPS:
?? ??? ?????????1、數據是以密文的方式在互聯網中傳輸,安全
?? ??? ?????????2、數據傳輸效率低
?? ??? ?????????3、默認端口號:443
?? ??? ?????????4、需要SSL證書的認證


? ? ? ? 4.2、SSL證書

????????????????SSL證書自己做也可以,但是瀏覽器不認,需要把證書一個個的添加信任,操作繁瑣,

????????????????專門做的,瀏覽器是信任的,

? ? ? ? 4.3、請求和響應

? ? ? ? ? ? ? ? 4.3.1、請求


????????????????????????HTTP請求Request 一個請求包含:請求行,請求頭,請求體

????????????????????????????????請求行:抽象路徑(/v1/users/login) ,協議版本(HTTP/1.1)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 請求頭:對請求的進一步解釋和描述,是否支持長連接,代理設置,
????????????????????????????????請求體:請求參數或者提交內容

? ? ? ? ? ? ? ? 4.3.2、響應

HTTP響應Response 一個響應包含三部分:響應行,響應頭,響應體
響應行:版本信息(HTTP/1.1)、響應碼(200)、附加信息(OK)
響應碼:
?? ?1xx:保留
?? ?2xx:成功,表示處理成功,并正常響應
?? ?3xx:重定向,表示處理成功,但是需要瀏覽器進一步請求
?? ?4xx:客戶端錯誤,表示客戶端請求錯誤,導致服務端無法處理
?? ?5xx:服務端錯誤,表示服務端處理請求過程出現了錯誤

重定向:www.360buy.com直接轉成www.jd.com,然后繼續訪問

響應頭:響應內容類別,響應長度,默認字節

5、數據的傳遞與接收

? ? ? ? 5.1、客戶端傳遞數據到服務端

????????

? ? ? ? ????????????????只是規范?

????????????????????????Get請求(請求類別或者請求方法),獲取服務端資源
?? ??? ?????????????????POST請求:服務器新增資源,比如:創建訂單
?? ??? ?????????????????PUT請求:更新服務器端資源,比如:修改個人資料
?? ??? ?????????????????DELETE請求,刪除服務器端資源,比如:刪除訂單,聊天記錄

????????????????????????

get請求
?username=liying&password=1105
敏感信息,圖片、視頻不用get請求,長度有限制

Post請求方式
?? ?發送方式:通過form表單的形式發送
?? ?傳遞數據方式:通過請求體方式
長度沒有限制,安全

? ? ? ? 5.2、服務端接收數據

? ? ? ? ? ? ? ? 1、HttpServletRequest接收

????????????????2、聲明參數方式來接收客戶端傳遞過來的數據

????????????????3、通過DTO類方式接收

?? ?1、HttpServletRequest接收:java servlet規范中定義的一個接口
?? ?tomocat將請求數據,進行封裝HttpServletRequest

?? ?2、聲明參數方式來接收客戶端傳遞過來的數據
?? ?/v1/carts/deleteCart
?? ?
?? ?3、通過DTO類方式接收?? ?
?? ?/v1/carts/updataCart
參數在2個及以下,使用聲明參數接收接口數據,高于兩個,使用POJO類接收

6、URL

????????URL:(網址) 統一資源定位符
?? ?????????區分大小寫,

? ? ? ? URL內容:

協議:http
主機名:localhost
端口號:8080
路徑:/v1/users/login
查詢參數:?后面的參數

Url不支持中文,但是瀏覽器里可以是中文,這是因為瀏覽器對中文做了url編碼

7、示例

添加商品到購物車
?? ?請求方式:get
?? ?請求地址:/v1/carts/addCart
?? ?查詢參數:?title=商品名稱&price=商品單價
?? ?返回響應:添加購物車成功

CartsController

@Controller
public class CartsController {/**** 1、HttpServletRequest接收*  添加商品到購物車*  http://localhost:8080/v1/carts/addCart*  http://localhost:8080/v1/carts/addCart?title=血飲狂刀&price=999.99** */@RequestMapping(value = "/v1/carts/addCart")@ResponseBodypublic String addCart(HttpServletRequest request){String title = request.getParameter("title");String price = request.getParameter("price");return "添加購物車成功"+title+","+price+"元";}/**** 2、聲明參數方式來接收客戶端傳遞過來的數據*  添加商品到購物車*  http://localhost:8080/v1/carts/deleteCart?username=xxx&id=xxx*  http://localhost:8080/v1/carts/addCart?title=血飲狂刀&price=999.99*  參數username和username要一致** */@RequestMapping(value = "/v1/carts/deleteCart")@ResponseBodypublic String deleteCart(String username,Integer id){return "恭喜你,刪除:"+username+",id:"+id;}/***  3、通過DTO類方式接收**  /v1/carts/updataCart*  http://localhost:8080/v1/carts/updataCart?title=方天畫戟&price=99.99&number=102* */@RequestMapping(value = "/v1/carts/updataCart")@ResponseBodypublic String updataCart(UpdataDTO updataDTO){return "更新成功:"+updataDTO.toString();}
}

cart.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>購物車功能</title>
</head>
<body><!--submit 點擊后,會觸發:action  ,會將參數提交到url,并且按照post方式請求地址鏈接-->
<form action="http://localhost:8080/v1/carts/addCart" method="post">商品名稱:<input type="text" name="title">商品價格:<input type="text" name="price"><input type="submit" name="添加">
</form></body>
</html>

測試工具:HttpClient、Knife4j、Postman

添加接口測試:test目錄下新建http文件夾,新建文件:cartsTest.http


cartsTest.http


### 更新購物車
POST http://localhost:8080/v1/carts/updataCart
Content-Type: application/x-www-form-urlencodedtitle = 方天畫戟 &
price = 999.99 &
number = 99###
### 購物車添加
GET  http://localhost:8080/v1/carts/addCart?title=血飲狂刀&price=999.99Accept: application/json###

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

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

相關文章

沒有屋檐的房子-038—田鼠的酷刑

秋天是收獲的季節&#xff0c;收獲之后的田野里不再是濕漉漉的。水稻此時已經了卻了此生&#xff0c;他們的后代稻谷已經被搬進了打谷場&#xff0c;被蛻變成了大米&#xff0c;住進了生產隊的糧倉然后又進入各家的糧食口袋或者米柜中。稻田里視野逐漸開闊&#xff0c;收割完水…

IntelliJ IDEA打開項目后,目錄和文件都不顯示,只顯示pom.xml,怎樣可以再顯示出來?

檢查.idea文件夾 如果項目目錄中缺少.idea文件夾&#xff0c;可能導致項目結構無法正確加載。可以嘗試刪除項目根目錄下的.idea文件夾&#xff0c;然后重新打開項目&#xff0c;IDEA會自動生成新的.idea文件夾和相關配置文件&#xff0c;從而恢復項目結構。 問題解決&#xff0…

Harmony開發 List、Grid拖動自定義排序實現

1. Harmony開發 List、Grid拖動自定義排序實現 1.1. List拖動功能 本示例基于顯式動畫、List組件實現了ListItem的上下拖動、ListItem切換以及ListItem插入的效果。 ??實現思路:List手勢拖動 @Entry @Component struct ListDragPage {@State private arr: string[] = [0, …

Jules 從私有預覽階段推向全球公測

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

ubuntu上安裝mysql

sudo apt update查看可用版本&#xff1a; apt-cache policy mysql-server返回&#xff1a; mysql-server: 已安裝&#xff1a;(無) 候選&#xff1a; 8.0.42-0ubuntu0.24.04.1 版本列表&#xff1a; 8.0.42-0ubuntu0.24.04.1 500 500 http://cn.archive.ubuntu.com/ubuntu no…

預先學習:構建智能系統的 “未雨綢繆” 之道

一、預先學習&#xff1a;訓練階段的 “模型預構建” 哲學 1.1 核心定義與生物啟發 預先學習的本質是模擬人類的 “經驗積累 - 快速決策” 機制&#xff1a;如同醫生通過大量病例總結診斷規則&#xff0c;算法在訓練階段利用全量數據提煉規律&#xff0c;生成固化的 “決策模型…

【notes】VScode 使用總結

文章目錄 擴展 c/cwindows7 系統下 c/c 自動升級導致的插件無法正常使用 設置 文件格式設置打開文件的默認格式 擴展 c/c windows7 系統下 c/c 自動升級導致的插件無法正常使用 問題 1. c/c擴展的1.25.x版本不再支持windows7 系統&#xff0c;當設置VScode自動升級拓展插件時…

wbs校驗

*數據定義 DATA:tab_set_bukrs_gxgsdm5 TYPE TABLE OF rgsb4, rec_set_bukrs_gxgsdm5 LIKE LINE OF tab_set_bukrs_gxgsdm5, r_bukrs_gxgsdm5 TYPE RANGE OF bukrs WITH HEADER LINE. DATA: tab_set_hkont_gxkjkm5 TYPE STANDARD TABLE OF rgsb4, …

kafka入門(二)

Java客戶端訪問Kafka 引入maven依賴 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka‐clients</artifactId> <version>2.4.1</version> </dependency> 消息發送端代碼 package com.tuling.kafka.ka…

Python----目標檢測(PASCAL VOC數據集)

一、PASCAL VOC數據集 PASCAL VOC&#xff08;Visual Object Classes&#xff09;數據集是計算機視覺領域中廣泛使用的一個 標準數據集&#xff0c;用于目標檢測、圖像分割、圖像分類、動作識別等任務。該數據集由 PASCAL&#xff08;Pattern Analysis, Statistical Modelling …

mariadb 升級 (通過yum)

* 注意下 服務名, 有的服務器上是mysql,有的叫mariadb,mysqld的 #停止 systemctl stop mysql #修改源 vi /etc/yum.repos.d/MariaDB.repo baseurl http://yum.mariadb.org/11.4/centos7-amd64 #卸載 yum remove mysql #安裝 yum install MariaDB-server galera-4 MariaDB-…

vuejs處理后端返回數字類型精度丟失問題

標題問題描述 后端返回數據有5.00和3.30這種數據&#xff0c;但是前端展示的時候返回對應分別為5和3.0&#xff0c;小數點后0都丟失了。 接口返回數據展示network-Response&#xff1a; 接口返回數據展示network-Preview&#xff1a; 錯誤數據效果展示 發現問題 瀏覽器接口…

ubuntu kubeasz 部署高可用k8s 集群

ubuntu kubeasz 部署高可用k8s 集群 測試環境主機列表軟件清單kubeasz 部署高可用 kubernetes配置源配置host文件安裝 ansible 并進行 ssh 免密登錄:下載 kubeasz 項?及組件部署集群部署各組件開始安裝修改 config 配置文件增加 master 節點增加 kube_node 節點登錄dashboard…

IDEA2025版本使用Big Data Tools連接Linux上Hadoop的HDFS

目錄 Windows的準備 1. 將與Linux上版本相同的hadoop壓縮包解壓到本地 ?編輯2.設置$HADOOP HOME環境變量指向:E:\hadoop-3.3.4 3.下載hadoop.dll和winutils.exe文件 4.將hadoop.dll和winutils.exe放入$HADOOP HOME/bin中 IDEA中操作 1.下載Big Data Tools插件 2.添加并連…

Java轉Go日記(三十九):Gorm查詢

1.1.1. 查詢 // 獲取第一條記錄&#xff0c;按主鍵排序db.First(&user)SELECT * FROM users ORDER BY id LIMIT 1;// 獲取最后一條記錄&#xff0c;按主鍵排序db.Last(&user)SELECT * FROM users ORDER BY id DESC LIMIT 1;// 獲取所有記錄db.Find(&users)SELECT *…

bisheng系列(二)- 本地部署(前后端)

一、導讀 環境&#xff1a;Ubuntu 24.04、open Euler 23.03、Windows 11、WSL 2、Python 3.10 、bisheng 1.1.1 背景&#xff1a;需要bisheng二開商用&#xff0c;故而此處進行本地部署&#xff0c;便于后期調試開發 時間&#xff1a;20250519 說明&#xff1a;bisheng前后…

5G金融互聯:邁向未來金融服務的極速與智能新時代

5G金融互聯:邁向未來金融服務的極速與智能新時代 大家好,我是Echo_Wish,今天咱們聊聊一個大家都十分關心的話題:5G網絡在金融服務中的應用。咱們平時可能覺得5G只是打個電話、刷個視頻更流暢了,但在金融服務領域,5G的低延時、大帶寬和高可靠性正在悄然改變整個游戲規則。…

UE5 GAS框架解析內部數據處理機制——服務器與客戶端

當&#xff0c; gas通過點擊鼠標光標觸發事件時&#xff0c;內部的處理機制。 當通過點擊事件&#xff0c;命中中目標時&#xff0c; 可獲取到對應的TargetData 目標數據。處理相應的操作。 僅有本地的客戶端的情況下。命中并不會有什么異常。 當存在服務器時&#xff0c; 服…

Golang的Web應用架構設計

# Golang的Web應用架構設計 介紹 是一種快速、高效、可靠的編程語言&#xff0c;它在Web應用開發中越來越受歡迎。Golang的Web應用架構設計通常包括前端、后端和數據庫三個部分。在本篇文章中&#xff0c;我們將詳細介紹Golang的Web應用架構設計及其組成部分。 前端 在Golang的…

對比 HTTP-REST 與 gRPC:各自的優缺點以及適用的場景

文章目錄 對比 HTTP-REST 與 gRPC&#xff1a;各自的優缺點以及適用的場景HTTP-REST 與 gRPC 的核心區別gRPC 的優缺點HTTP-REST 的優缺點適用場景 模糊點什么是 Protobuf&#xff1f;HTTP/2 會將 HTTP 消息拆分并封裝為二進制幀&#xff0c;那還能過使用 HTTP/2 構建 RESTful …