欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:SpringMVC詳解

Etsy手作迷綜合2025-06-12180

柚子快報激活碼778899分享:SpringMVC詳解

http://yzkb.51969.com/

文章目錄

1 什么是MVC1.1 MVC設(shè)計思想1.2 Spring MVC

2 SpringMVC快速入門3 SpringMVC處理請求3.1 請求分類及處理方式3.1.1 靜態(tài)請求3.1.2 動態(tài)請求

3.2 處理靜態(tài)請求3.2.1 處理html文件請求3.2.2 處理圖片等請求

3.3 處理動態(tài)請求3.3.1 注解說明3.3.2 示例

3.4 常見問題

4 HTTP4.1 HTTP協(xié)議4.2 訪問網(wǎng)頁流程4.3 請求和響應(yīng)4.3.1 HTTP請求 Request4.3.2 HTTP響應(yīng) Response

4.4 URL4.4.1 定義4.4.2 URL組成4.4.3 注意事項

4.5 請求方法4.5.1 GET請求4.5.2 POST請求

4.6 傳遞數(shù)據(jù)方式4.6.1 GET請求4.6.2 POST請求

5 服務(wù)端接收參數(shù)5.1 HttpServletRequest接收5.2 聲明參數(shù)接收5.3 聲明POJO類接收

6 HttpClient測試6.1 HttpClient說明

7 POJO7.1 定義7.2 entity實體類|DTO|VO

1 什么是MVC

1.1 MVC設(shè)計思想

MVC是一種軟件架構(gòu)的思想,將軟件按照模型、視圖、控制器來劃分。

M Model,模型層,負責業(yè)務(wù)邏輯判斷,數(shù)據(jù)庫存取 V View,視圖層,負責界面展示,向用戶呈現(xiàn)數(shù)據(jù)的方式(html頁面、圖片、文本等) C Controller,控制器,負責接收用戶請求,并根據(jù)請求調(diào)用相應(yīng)的模型來處理業(yè)務(wù)邏輯

1.2 Spring MVC

SpringMVC是一種基于MVC(模型-視圖-控制器)模式的Web框架,它是基于Spring框架的一個子項目。

它通過將請求分派給相應(yīng)的控制器來處理Web請求,然后將處理結(jié)果發(fā)送回客戶端。

處理流程如圖:

客戶端發(fā)送請求至前端控制器DispatcherServlet;DispatcherServlet收到請求后,調(diào)用處理器映射器HandlerMapping;HandlerMapping根據(jù)請求URL找到具體的Controller;通過處理器適配器HandlerAdapter找到具體執(zhí)行該方法的實現(xiàn)類;Controller處理請求,并返回ModelAndView;DispatcherServlet通過ViewReslover(視圖解析器)確定負責顯示數(shù)據(jù)的具體View;DispatcherServlet對View進行渲染視圖(即將Model填充至視圖組件中),并將完整的視圖響應(yīng)到客戶端。

2 SpringMVC快速入門

第1步:創(chuàng)建工程 _051MVC-BOOT01 第2步:選擇 2.7.17 版本,并勾選 Spring Web 依賴項

org.springframework.boot

spring-boot-starter-web

第3步:啟動工程 第4步:在resources/static目錄下創(chuàng)建index.html

工程首頁

第5步:Rebuild static

3 SpringMVC處理請求

3.1 請求分類及處理方式

3.1.1 靜態(tài)請求

定義 指請求的頁面由服務(wù)器上預(yù)先準備好的靜態(tài)web資源組成,如HTML、CSS、JS、IMG等,返回給客戶端的信息內(nèi)容是不變的。 處理方式 由服務(wù)器直接將請求的資源返回給客戶端,服務(wù)器不處理任何邏輯,只是將預(yù)先準備好的資源返回給客戶端。

3.1.2 動態(tài)請求

定義 服務(wù)器會根據(jù)用戶的請求動態(tài)生成內(nèi)容,將數(shù)據(jù)返回到客戶端顯示頁面內(nèi)容。 處理方式 由服務(wù)器從數(shù)據(jù)庫中獲取數(shù)據(jù),并進行相應(yīng)的邏輯處理后將處理結(jié)果返回客戶端。

3.2 處理靜態(tài)請求

3.2.1 處理html文件請求

第1步:創(chuàng)建index.html(已經(jīng)創(chuàng)建)瀏覽器輸入地址測試 http://localhost:8080/index.html 第2步:瀏覽器顯示工程首頁

3.2.2 處理圖片等請求

第1步:復(fù)制任意一張圖片到static下 第2步:右鍵static目錄,Rebuild static 第3步:瀏覽器測試 http://localhost:8080/liying.jpg

3.3 處理動態(tài)請求

通過在 controller 中定義對應(yīng)的類及方法實現(xiàn)動態(tài)請求的業(yè)務(wù)邏輯處理。

3.3.1 注解說明

@Controller 添加在類上; 表示該類是一個控制器,負責處理用戶的請求,并將處理結(jié)果生成響應(yīng)返回給客戶端。 @RequestMapping 請求注解; 添加在控制器類或控制器方法上; 將HTTP請求映射到控制器中的方法,指定處理請求的路徑

控制器類上:為整個控制器指定一個基礎(chǔ)路徑控制器方法上:指定相對于基礎(chǔ)路徑的具體路徑 @ResponseBody 響應(yīng)注解; 添加在控制器方法上; 可以使控制器方法通過返回值的方式將響應(yīng)返回給客戶端。

3.3.2 示例

處理用戶查詢訂單的請求

請求地址:http://localhost:8080/selectOrder返回響應(yīng):String “查詢訂單成功~~”

實現(xiàn)

第1步: 工程目錄下新建 controller.OrderController // @Controller:用于將一個類標識為SpringMVC中的控制器,負責處理用戶的請求并將響應(yīng)返回給客戶端

@Controller

public class OrderController {

// 1.請求注解

@RequestMapping("/selectOrder")

// 2.響應(yīng)體注解,添加此注解后,可以通過返回值的方式響應(yīng)給客戶端數(shù)據(jù)

@ResponseBody

public String selectOrder(){

return "查詢訂單成功~~";

}

}

第2步:重啟工程 后瀏覽器測試 http://localhost:8080/selectOrder

3.4 常見問題

工程已修改,但是瀏覽器刷新未出現(xiàn)效果

工程static目錄下文件修改后必須 Rebuild static瀏覽器有之前頁面的緩存,Shift + F5 刷新頁面 404錯誤碼代表找不到資源

找不到靜態(tài)資源

檢查請求的路徑是否正確檢查靜態(tài)資源文件的存儲位置是否在static里面選中static文件夾 ReBuild 重新編譯再測試 找不到動態(tài)資源

檢查請求的路徑是否正確檢查@Controller注解是否添加檢查@RequestMapping注解里面的處理路徑是否正確

4 HTTP

4.1 HTTP協(xié)議

超文本傳輸協(xié)議

HTTP協(xié)議是瀏覽器與服務(wù)器通訊的應(yīng)用層協(xié)議,規(guī)定了瀏覽器與服務(wù)器之間的交互規(guī)則以及交互數(shù)據(jù)的格式信息等。

用途 : 網(wǎng)頁獲取,數(shù)據(jù)的傳輸特點

應(yīng)用層協(xié)議,使用tcp進行數(shù)據(jù)傳輸;有豐富的請求類型;可以傳輸?shù)臄?shù)據(jù)類型眾多.

4.2 訪問網(wǎng)頁流程

客戶端(瀏覽器)通過tcp傳輸,發(fā)送http請求給服務(wù)端;服務(wù)端接收到http請求后進行解析;服務(wù)端處理請求內(nèi)容,組織響應(yīng)內(nèi)容;服務(wù)端將響應(yīng)內(nèi)容以http響應(yīng)格式發(fā)送給瀏覽器;瀏覽器接收到響應(yīng)內(nèi)容,解析展示.

4.3 請求和響應(yīng)

4.3.1 HTTP請求 Request

瀏覽器給服務(wù)端發(fā)送的內(nèi)容稱為請求Request,一個請求包含三部分:請求行,請求頭,請求體

請求行 : 具體的請求類別和請求內(nèi)容 GET / HTTP/1.1

請求類別 抽象路徑 協(xié)議版本

/**關(guān)于請求類別*/

請求類別:每個請求類別表示向服務(wù)器端發(fā)請求做不同的操作

GET : 獲取服務(wù)器資源

POST :新增服務(wù)器資源

PUT : 更新服務(wù)器資源

DELETE : 刪除服務(wù)器資源

/**關(guān)于抽象路徑*/

請求URL地址為:http://localhost:8080/

請求行為: GET / HTTP/1.1

請求URL地址為:http://localhost:8080/v1/users/login

請求行為: GET /v1/users/login HTTP/1.1

請求URL地址為:http://localhost:8080/v1/users/reg

GET /v1/users/reg HTTP/1.1

請求頭:對請求的進一步解釋和描述 請求頭是瀏覽器可以給服務(wù)端發(fā)送的一些附加信息,有的用來說明瀏覽器自身內(nèi)容,有的用來告知服務(wù)端交互細節(jié),有的告知服務(wù)端消息正文詳情等。 Host: localhost:8080

Connection: keep-alive

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

請求體: 請求參數(shù)或者提交內(nèi)容 請求體通常是用戶上傳的信息,比如:在頁面輸入的注冊信息,上傳的附件等內(nèi)容。

4.3.2 HTTP響應(yīng) Response

服務(wù)端給瀏覽器發(fā)送的內(nèi)容稱為響應(yīng)Response,一個響應(yīng)包含三部分:響應(yīng)行,響應(yīng)頭,響應(yīng)體。

響應(yīng)行 HTTP/1.1 200 OK

版本信息 響應(yīng)碼 附加信息

響應(yīng)碼 :

1xx:保留

2xx:成功,表示處理成功,并正常響應(yīng)

3xx:重定向,表示處理成功,但是需要瀏覽器進一步請求

4xx:客戶端錯誤,表示客戶端請求錯誤導(dǎo)致服務(wù)端無法處理

5xx:服務(wù)端錯誤,表示服務(wù)端處理請求過程出現(xiàn)了錯誤

響應(yīng)頭 響應(yīng)頭與請求中的消息頭格式一致,表示的是服務(wù)端發(fā)送給客戶端的附加信息。 HTTP/1.1 200 OK

Content-Type: text/html

Content-Length: 3546

//Content-Length是用來告知瀏覽器響應(yīng)正文的長度,單位是字節(jié)。

Content-Type 是用來告知瀏覽器響應(yīng)正文中的內(nèi)容是什么類型的數(shù)據(jù)(圖片,頁面等等)不同的類型對應(yīng)的值是不同,瀏覽器接收正文前會根據(jù)上述兩個響應(yīng)頭來得知長度和類型從而讀取出來做對應(yīng)的處理以渲染給用戶看。

文件類型Content-Type對應(yīng)的值htmltext/htmlcsstext/cssjsapplication/javascriptpngimage/pnggifimage/gifjpgimage/jpeg 響應(yīng)體 響應(yīng)的主體內(nèi)容信息

4.4 URL

4.4.1 定義

? URL(Uniform Resource Locator)是互聯(lián)網(wǎng)上 統(tǒng)一資源定位符 的簡稱,用于標識和定位互聯(lián)網(wǎng)上資源的地址。在Web瀏覽器中,URL是用于訪問網(wǎng)頁的地址。

4.4.2 URL組成

http://localhost:8080/v1/users/login?username=xxx&password=yyy

協(xié)議(Protocol):指定訪問資源的協(xié)議類型,常見的協(xié)議包括HTTP、HTTPS等。 主機名(Hostname):指定要訪問的服務(wù)器的主機名或域名。 端口號(Port):指定服務(wù)器的端口號,不同的協(xié)議和應(yīng)用程序使用不同的端口號。 路徑(Path):指定要訪問的資源的路徑,即文件或文件夾的路徑。 查詢參數(shù)(Query Parameters):用于傳遞一些額外的信息給服務(wù)器,例如參數(shù)化的查詢條件。 查詢參數(shù)和路徑Path之間使用 ?分隔,多個查詢參數(shù)之間使用 & 分隔。

4.4.3 注意事項

URL地址是區(qū)分大小寫的,因此在輸入時要注意大小寫的一致性。 URL地址中不能包含非法字符,例如空格、特殊符號等。如果需要傳遞參數(shù)或附加信息,可以使用查詢參數(shù)或POST請求等方式。

4.5 請求方法

4.5.1 GET請求

? GET請求是HTTP協(xié)議中最常見的請求方式之一,它用于從服務(wù)器獲取數(shù)據(jù)。

? GET請求將查詢參數(shù)附加在URL之后,通過“?”符號進行分隔。

查詢參數(shù) GET請求的參數(shù)通常以鍵值對的形式附加在URL之后。例如,以下URL中,“?name=John&age=25”是兩個查詢參數(shù),分別表示名字和年齡 http://example.com/users?name=John&age=25

注意事項

GET請求的參數(shù)是可見的,因此在URL中傳遞敏感信息時需謹慎。GET請求的長度有限制,因為URL的長度有限制,因此當傳遞大量數(shù)據(jù)時,應(yīng)考慮使用POST或其他方式。 發(fā)送GET請求 在瀏覽器中輸入URL地址確認即可向服務(wù)端發(fā)送GET請求。 http://localhost:8080/v1/users/login?username=xxx&password=xxx

4.5.2 POST請求

? POST請求是另一種常見的HTTP請求方式,它用于向服務(wù)器提交數(shù)據(jù)。與GET請求不同,POST請求將數(shù)據(jù)放在請求體(Request Body)中,而不是URL中。

請求體

? POST請求的請求體中包含要提交的數(shù)據(jù)。這些數(shù)據(jù)可以是JSON、XML或其他格式。請求體中的數(shù)據(jù)通過Content-Type頭部指定。

請求示例 POST /users HTTP/1.1

Host: example.com

Content-Type: application/json

Request Body: {"username": "john", "password": "secret"}

使用POST請求的注意事項

POST請求的數(shù)據(jù)是私密的,不會顯示在URL中,因此更適合傳遞敏感信息。 POST請求的長度沒有限制,可以提交大量的數(shù)據(jù)。 發(fā)送POST請求 經(jīng)常在 form 表單中發(fā)送。

4.6 傳遞數(shù)據(jù)方式

客戶端向服務(wù)端傳遞數(shù)據(jù)的方式分為GET請求和POST請求兩種方式。

4.6.1 GET請求

在查詢參數(shù)中傳遞,比如:

http://localhost:8080/v1/users/login?username=xxx&password=xxx

4.6.2 POST請求

在請求體中傳遞,比如:

5 服務(wù)端接收參數(shù)

5.1 HttpServletRequest接收

HttpServletRequest是Java Servlet規(guī)范中定義的一個接口,它提供了與HTTP請求相關(guān)的方法和屬性。 在Java Web應(yīng)用程序中,當客戶端發(fā)送HTTP請求時,容器(例如Tomcat)會創(chuàng)建一個HttpServletRequest對象,該對象包含了客戶端請求的所有信息,如請求的URL、請求方法、請求頭、請求參數(shù)等。 在請求處理過程中,開發(fā)人員可以使用HttpServletRequest對象來獲取客戶端發(fā)送過來的請求參數(shù)。通過調(diào)用HttpServletRequest的方法,可以獲取請求的參數(shù)名稱、參數(shù)值以及參數(shù)的數(shù)量等信息。

以上述案例為準,客戶端把用戶名和密碼信息傳遞給服務(wù)端,服務(wù)端接收傳遞過來的用戶名和密碼信息。

第1步:controller.UserController 處理請求 /**方式1:使用HttpServletRequest接收數(shù)據(jù)*/

@RequestMapping("/v1/users/login")

@ResponseBody

public String login(HttpServletRequest request){

String username = request.getParameter("username");

String password = request.getParameter("password");

return username + ":" + password;

}

第2步:重啟工程測試

5.2 聲明參數(shù)接收

可以在處理請求的方法中通過 聲明參數(shù)的方式 來接收客戶端傳遞過來的數(shù)據(jù)。

應(yīng)用分析

第1步:controller.UserController處理登錄請求 /**方式2:通過聲明參數(shù)的方式接收*/

@RequestMapping("/v1/users/login")

@ResponseBody

// 好處:代碼簡潔,并且可以自動根據(jù)聲明的類型進行轉(zhuǎn)換

public String login(String username, String password){

return "username = " + username + ", password = " + password;

}

第2步:重啟工程,執(zhí)行測試腳本測試

5.3 聲明POJO類接收

如果客戶端傳遞數(shù)據(jù)過多,通過 HttpServletRequest 方式接收復(fù)用性較差,通過 聲明參數(shù)接收 又很繁瑣;所以可以將數(shù)據(jù)封裝到 POJO類 中來接收。

操作步驟

第1步:controller.UserController處理登錄請求 /**方式3:通過聲明Pojo類接收*/

@RequestMapping("/v1/users/login")

@ResponseBody

public String login(User user){

return user.toString();

}

第2步:自定義pojo類,工程目錄下創(chuàng)建entity.User public class User {

// 客戶端傳遞幾個參數(shù),此處就有幾個屬性

private String username;

private String password;

// 省略 setter() getter() 和 toString() 方法

}

第3步:重啟工程后測試

6 HttpClient測試

6.1 HttpClient說明

使用SpringMVC中提供的 .http 后綴的文件來測試 Controller 層接口。

使用三個 # 號 作為不同測試方法的分隔符,也可以作為注釋說明。

應(yīng)用分析

第1步:在test目錄下創(chuàng)建 Directory :http 第2步:創(chuàng)建 .http 后綴的文件進行測試:testUserController.http ### GET請求測試

GET http://localhost:8080/v1/users/login?username=liying&password=123456

Accept: application/json

### POST請求測試

POST http://localhost:8080/v1/users/login

Content-Type: application/x-www-form-urlencoded

username=liying&password=123456

第3步:執(zhí)行對應(yīng)的請求方法測試

7 POJO

7.1 定義

Plain Ordinary Java Object:簡單的Java對象;

是沒有繼承任何類或?qū)崿F(xiàn)任何接口的簡單 Java 對象,也不依賴于其他復(fù)雜的框架或技術(shù);

POJO 對象通常包含了純粹的數(shù)據(jù)和簡單的業(yè)務(wù)邏輯,是一種用于簡化 Java 應(yīng)用程序開發(fā)的編程模型;

是entity實體類、VO(Value Object或View Object)視圖對象、DTO(Data Transfer Object)數(shù)據(jù)傳輸對象 這3個對象的總稱。

7.2 entity實體類|DTO|VO

entity實體類作用 用來和數(shù)據(jù)庫中的表字段一一對應(yīng)的,比如UserEntity(id,username,password,nickname); DTO作用 用來接收客戶端傳遞給服務(wù)器的數(shù)據(jù)的,比如:UserLoginDTO(username,password) 實現(xiàn)登錄功能,客戶端向服務(wù)器端傳遞數(shù)據(jù); VO作用 用來處理服務(wù)器響應(yīng)給客戶端的數(shù)據(jù)的,比如:UserListVO(id,username,nickname) 登錄成功后的列表頁顯示當前用戶信息。

柚子快報激活碼778899分享:SpringMVC詳解

http://yzkb.51969.com/

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/2027198595.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄