學習筆記——@PathVariable註解基本使用;@PathVariable註解屬性;REST風格CRUD概述;實現PUT&DELETE提交方法步驟;SpringMVC處理請求數據、請求頭、處理Cookie信息

来源:https://www.cnblogs.com/isDaHua/archive/2023/01/19/17061710.html
-Advertisement-
Play Games

2023-01-19 一、@PathVariable註解基本使用 1、獲取URL中占位符 2、占位符語法:{} 3、實例代碼: @RequestMapping("testPathVariable/{empId}") public String testPathVariable(@PathVariab ...


2023-01-19

一、@PathVariable註解基本使用

1、獲取URL中占位符

2、占位符語法:{}

3、實例代碼:

@RequestMapping("testPathVariable/{empId}")
    public String testPathVariable(@PathVariable("empId")Integer empId){
        System.out.println(" empId = " + empId);
        return SUCCESS;
    }
<a th:href="@{/EmpController/testPathVariable/1001}">測試testPathVariable</a><br>

二、@PathVariable註解屬性

1、value屬性

(1)類型:String

(2)作用:設置占位符中的參數名

2、name屬性

(1)類型:String

3、required屬性

(1)類型:boolean

(2)作用:設置當前參數是否必須入參

①true:表示當前參數必須入參,如未入參數會報以下錯誤

Missing URI template variable 'empId' for method parameter of type Integer

②false:表示當前參數不必須入參,如未入參,會裝配null值 

三、REST風格CRUD概述

1、REST的CRUD與傳統風格CRUD對比

 

2、REST風格CRUD優勢

(1)提高網站排名

排名方式:

①競價排名

②技術排名

(2)便於第三方平臺對接

四、SpringMVC環境搭建

五、REST風格CRUD練習——查詢

六、實現PUT&DELETE提交方法步驟

1、註冊過濾器HiddenHttpMethodFilter

2、設置表單的提交方法為POST

3、設置參數:_method=PUT或_method=DELETE

七、源碼解析HiddenHttpMethodFilter


public static final String DEFAULT_METHOD_PARAM = "_method";
private String methodParam = "_method";

protected
void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { HttpServletRequest requestToUse = request; if ("POST".equals(request.getMethod()) && request.getAttribute("javax.servlet.error.exception") == null) { String paramValue = request.getParameter(this.methodParam); if (StringUtils.hasLength(paramValue)) { String method = paramValue.toUpperCase(Locale.ENGLISH); if (ALLOWED_METHODS.contains(method)) { requestToUse = new HiddenHttpMethodFilter.HttpMethodRequestWrapper(request, method); } } } filterChain.doFilter((ServletRequest)requestToUse, response); }
private static class HttpMethodRequestWrapper extends HttpServletRequestWrapper {
        private final String method;

        public HttpMethodRequestWrapper(HttpServletRequest request, String method) {
            super(request);
            this.method = method;
        }

        public String getMethod() {
            return this.method;
        }
    }

八、SpringMVC處理請求數據

1、使用Servlet處理請求數據

(1)請求參數

Spring param = request.getParameter();

(2)請求頭

request.getHeader()

(3)Cookie

request.getCookies();

2、處理請求參數

(1)預設情況:可以將請求參數名,與入參參數名一致的參數,自動入參(自動類型轉換)。

(2)@RequestParam註解

①作用:如請求參數與入參參數

②屬性

value:是String類型;作用:設置需要入參的參數名

name:是String類型;作用:與value屬性作用一致

required:是Boilean類型;作用:設置當前參數,是否必須入參

defaultValue:是String類型;作用:當裝配數值未null時,指定當前defaultValue預設值

九、處理請求頭

1、語法:@RequestHeader註釋

2、屬性

(1)value:

①類型:String

②作用:設置需要獲取請求頭名稱

(2)name:

①類型:String

②作用:與value屬性作用一致

(3)required:

①類型:Boilean

②作用:設置當前參數,是否必須入參

(4)defaultValue:

①類型:String類型

②作用:當裝配數值未null時,指定當前defaultValue預設值

十、處理Cookie信息

1、語法:@CookieValue獲取Cookie數值

2、屬性:同上

3、實例代碼:

<a th:href="@{/setCookie}">設置Cookie</a>
<a th:href="@{/getCookie}">獲取Cookie</a>
@RequestMapping("/setCookie")
    public String setCookie(HttpSession httpSession){
        System.out.println("httpSession.getId() = " + httpSession.getId());
        return SUCCESS;
    }

    @RequestMapping("/getCookie")
    public String getCookie(@CookieValue("JSESSIONID")String cookieValue){
        System.out.println("cookieValue = " + cookieValue);
        return SUCCESS;
    }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 運行環境:Window10,.Net7.0; 編者:烏龍哈里 2023-01-13 經常碰到兩個控制項需要相互傳遞消息,這時候需要用到事件。比如現有兩個類如下: class AA { private string Text = "AA"; public void SetText(string s) { ...
  • Cortex M 的中斷和優先順序, 首先要區分開 中斷 和 中斷優先順序 這是兩個不同的東西, 對於 Cortex-M0 和 Cortex-M0+ 內核, 除了系統內建中斷外, 支持最多 32 個中斷. 對於 Cortex-M3 內核, 除了 16 個內核中斷外, 支持最多 240 個中斷, 有8-b... ...
  • 分組數據 數據分組 分組允許把數據分為多個邏輯組,以便能對每個組進行聚集計算。 創建分組 分組是在SELECT語句的GROUP BY子句中建立的: SELECT vend_id, COUNT(*) AS num_prods FROM products GROUP BY vend_id; 註意: GR ...
  • 關於資料庫的性能優化其實是一個很複雜的大課題,很難通過一篇帖子講的很全面和深刻,這也就是為什麼我的標題是‘淺析’,程式員的成長一定是要付出代價和成本,因為只有真的在一線切身體會到當時的緊張和壓力,對於一件事情才能印象深刻,但反之也不能太過於強調代價,如果可以通過一些別人的分享就可以規避一些自己業務的... ...
  • 在 Vue 中,如果直接對數組進行操作,比如使用下標直接修改元素, Vue 是無法監測到這種變化的,導致無法觸發視圖更新。因此如何監測數組變化是值得關註的問題。 ...
  • 項目場景: 基於electron + Vue + node.js + express + mysql + evanpatchouli-mysql + Ant-Design-Vue,編寫一款屬於自己的輕量級MySQL資料庫界面工具。 問題列表 如何動態渲染高度自定義的Ant Design Table? ...
  • 概念 Array 數組是有序的元素序列。 語法 new Array(length) new Array(element1) new Array(element1, element2) new Array(element1, element2, element3) new Array(element1 ...
  • 最近看了一本書《解構-領域驅動設計》,書中提出了領域驅動設計統一過程(DDDRUP),它指明瞭實踐 DDD 的具體步驟,並很好地串聯了各種概念、模式和思想。因此,我對書本內容做了梳理、簡化,融入自己的理解,並結合之前閱讀的書籍以及實踐經驗,最終形成這篇文章。希望可以幫助大伙理順 DDD 的各種概念、... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...