日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringMVC--RequestMapping说明RestFul 风格小黄鸭调试法

發布時間:2024/3/26 javascript 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC--RequestMapping说明RestFul 风格小黄鸭调试法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. @RequestMapping

  • @RequestMapping注解用于映射url到控制器類或一個特定的處理程序方法。可用于類或方法上。用于類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。

1.1 只注解在方法上面

@Controller public class TestController {@RequestMapping("/h1")public String test(){return "test";} }

訪問路徑:http://localhost:8080 / 項目名 / h1


1.2 同時注解類與方法

@Controller @RequestMapping("/admin") public class TestController {@RequestMapping("/h1")public String test(){return "test";} }

訪問路徑:http://localhost:8080 / 項目名/ admin /h1 , 需要先指定類的路徑再指定方法的路徑;


2. RestFul 風格

2.1 概念

Restful就是一個資源定位及資源操作的風格。不是標準也不是協議,只是一種風格。基于這個風格設計的軟件可以更簡潔,更有層次,更易于實現緩存等機制。


2.2 功能

  • 資源:互聯網所有的事物都可以被抽象為資源
  • 資源操作:使用POST、DELETE、PUT、GET,使用不同方法對資源進行操作。
  • 分別對應 添加、 刪除、修改、查詢。

2.2.1 傳統方式操作資源 :

通過不同的參數來實現不同的效果!方法單一,post 和 get

http://127.0.0.1/item/queryItem.action?id=1 查詢,GEThttp://127.0.0.1/item/saveItem.action 新增,POSThttp://127.0.0.1/item/updateItem.action 更新,POSThttp://127.0.0.1/item/deleteItem.action?id=1 刪除,GET或POST

2.2.2 使用RestFul操作資源

可以通過不同的請求方式來實現不同的效果!如下:請求地址一樣,但是功能可以不同!

http://127.0.0.1/item/1 查詢,GEThttp://127.0.0.1/item 新增,POSThttp://127.0.0.1/item 更新,PUThttp://127.0.0.1/item/1 刪除,DELETE

2.3 測試

2.3.1新建一個類 RestFulController

import org.springframework.stereotype.Controller;@Controller public class RestFulController { }

2.3.2 在Spring MVC中可以使用 @PathVariable 注解,讓方法參數的值對應綁定到一個URI模板變量上。

RestFulController.java

package com.tian.controller;import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping;@Controller public class RestFulController {// 映射訪問路徑@RequestMapping("/commit/{p1}/{p2}")public String index(@PathVariable int p1, @PathVariable int p2, Model model) {int result = p1 + p2;//Spring MVC會自動實例化一個Model對象用于向視圖中傳值model.addAttribute("msg", "結果為: " + result);//返回視圖位置return "test";} }

2.3.3 編寫前端test.jsp,注意在WEB-INF/jsp目錄下編寫,對應我們的視圖解析器

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body> ${msg} </body> </html>

2.3.4 啟動TomCat測試


2.3.5 小結:使用路徑變量的好處

  • 使路徑變得更加簡潔;
  • 獲得參數更加方便,框架會自動進行類型轉換。
  • 通過路徑變量的類型可以約束訪問參數,如果類型不一樣,則訪問不到對應的請求方法,如這里訪問是的路徑是/commit/1/a,則路徑與方法不匹配,而不會是參數轉換失敗。
  • 更加安全

2.3.6 我們來修改下對應的參數類型,再次測試

int-->String

package com.tian.controller;import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping;@Controller public class RestFulController {// 映射訪問路徑@RequestMapping("/commit/{p1}/{p2}")public String index(@PathVariable String p1, @PathVariable String p2, Model model) {String result = p1 + p2;//Spring MVC會自動實例化一個Model對象用于向視圖中傳值model.addAttribute("msg", "結果為: " + result);//返回視圖位置return "test";} }

運行結果:


2.3.6 使用method屬性指定請求類型

用于約束請求的類型,可以收窄請求范圍。指定請求謂詞的類型如GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE等


2.3.6.1 增加一個方法(參數value 和path等同)

//映射訪問路徑,必須是POST請求@RequestMapping(value = "/hello",method = {RequestMethod.POST})public String index2(Model model){model.addAttribute("msg", "hello!");return "test";}

2.3.6.2 我們使用瀏覽器地址欄進行訪問默認是Get請求,會報錯405:


2.3.6.3 如果將POST修改為GET則正常了;


2.3.6.4 小結

Spring MVC 的 @RequestMapping 注解能夠處理 HTTP 請求的方法, 比如 GET, PUT, POST, DELETE 以及 PATCH。

如果不配置method, 則以任何請求形式 如: RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT, RequestMethod.PATCH, RequestMethod.DELETE都可以訪問得到。

所有的地址欄請求默認都會是 HTTP GET 類型的。


2.3.6.5 方法級別的注解變體有如下幾個:組合注解

@GetMapping @PostMapping @PutMapping @DeleteMapping @PatchMapping

@GetMapping 是一個組合注解,平時使用的會比較多!它所扮演的是 @RequestMapping(method =RequestMethod.GET) 的一個快捷方式。


3. 小黃鴨調試法

場景一:我們都有過向別人(甚至可能向完全不會編程的人)提問及解釋編程問題的經歷,但是很多時候就在我們解釋的過程中自己卻想到了問題的解決方案,然后對方卻一臉茫然。

場景二:你的同行跑來問你一個問題,但是當他自己把問題說完,或說到一半的時候就想出答案走了,留下一臉茫然的你。

其實上面兩種場景現象就是所謂的小黃鴨調試法(Rubber Duck Debuging),又稱橡皮鴨調試法,它是我們軟件工程中最常使用調試方法之一。

此概念據說來自《程序員修煉之道》書中的一個故事,傳說程序大師隨身攜帶一只小黃鴨,在調試代碼的時候會在桌上放上這只小黃鴨,然后詳細地向鴨子解釋每行代碼,然后很快就將問題定位修復了。

意思就是遇到問題的時候,自己給自己解釋每行代碼的意思,幫自己理清思路。



總結

以上是生活随笔為你收集整理的SpringMVC--RequestMapping说明RestFul 风格小黄鸭调试法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 青青草福利 | 亚洲va天堂va国产va久 | 91麻豆网站 | 日韩欧美aⅴ综合网站发布 国产成人一区二区三区小说 | 亚洲色图视频在线观看 | 国产综合图区 | 热久久国产精品 | julia在线播放88mav | 香蕉视频三级 | 在线观看香蕉视频 | 911香蕉 | 国产精品成 | 好吊妞视频在线 | 哪里可以免费看毛片 | 手机在线不卡av | 麻豆伊甸园 | 在线视频亚洲欧美 | 亚洲av永久无码精品三区在线 | 秋霞午夜 | 日日操影院 | 国产精品久久久久不卡 | 高h捆绑拘束调教小说 | 又黄又色又爽的视频 | 99在线看| 精品免费看 | 欧美黄色一区二区三区 | 邵氏电影《金莲外传2》免费观看 | 东凛在线观看 | 91av不卡| 日韩激情在线播放 | 97操操 | 国产精品探花在线观看 | 国产精品无码无卡无需播放器 | 精品+无码+在线观看 | 久久精品国产99久久久 | 日本免费黄色 | 日韩一区二区三免费高清在线观看 | 老司机一区 | 欧美另类极品videosbest最新版本 | 欧美在线视频免费播放 | 日韩在线观看一区二区 | 在线观看二区 | 黄色三级三级三级三级 | 外国黄色录像 | 一区二区三区 欧美 | 亚洲一区图片 | 美女久久久 | 污污视频在线观看网站 | 国产性猛交普通话对白 | 成人av无码一区二区三区 | 免费在线观看a视频 | 无码精品人妻一二三区红粉影视 | 亚洲精品无 | 久久久久久网址 | 91破处视频| 日韩av手机在线免费观看 | 性网爆门事件集合av | 久久影视中文字幕 | 国产永久视频 | 精品视频免费在线观看 | 亚洲亚裔videos黑人hd | 美女性高潮视频 | 国产毛片自拍 | 韩国禁欲系高级感电影 | 久久爱网| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 青青草视频免费看 | 国产第八页 | 亚洲美女av网站 | 国产人妻一区二区 | 性――交――性――乱睡觉 | 欧美无马| 亚洲免费激情视频 | 国内精品久久久久久久久 | 国产一区二区三区成人 | 噜噜噜视频| 午夜免费高清视频 | 日本国产一级片 | 婷婷综合久久 | 日韩免费av网站 | 黄色a级片视频 | 亚洲天堂自拍 | 啪啪导航| 国产91综合 | 九九自拍 | 国产一区麻豆 | 女人一级一片30分 | 日本高清不卡视频 | 操女人的逼逼 | www.com污| 四虎在线免费观看 | 校园春色在线观看 | 国产在线欧美在线 | 逼逼爱插插网站 | 国产日韩网站 | 国产一区二区在 | 蜜臀在线视频 | 国产又粗又猛又爽又黄的 | 一道本在线视频 |