91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringMVC對Restful風格的支持是怎樣的

發布時間:2022-01-06 14:33:13 來源:億速云 閱讀:138 作者:柒染 欄目:開發技術

這篇文章給大家介紹SpringMVC對Restful風格的支持是怎樣的,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

    前言

    RESTFUL是一種網絡應用程序的設計風格和開發方式,基于HTTP,可以使用XML格式定義或JSON格式定義。

    一、RESTful簡介

    REST:Representational State Transfer,表現層資源狀態轉移。

    1.1、資源

    資源是一種看待服務器的方式。即,將服務器看作是由很多離散的資源組成。

    每個資源是服務器上一個可命名的抽象概念。

    因為資源是一個抽象的概念,所以它不僅僅能代表服務器文件系統中的一個文件、數據庫中的一張表等等具體的東西,可以將資源設計的要多抽象有多抽象,只要想象力允許而且客戶端應用開發者能夠理解。

    與面向對象設計類似,資源是以名詞為核心來組織的,首先關注的是名詞。

    一個資源可以由一個或多個URI來標識。URI既是資源的名稱,也是資源在Web上的地址。對某個資源感興趣的客戶端應用,可以通過資源的URI與其進行交互。

    1.2、資源的表述

    資源的表述是一段對于資源在某個特定時刻的狀態的描述。可以在客戶端-服務器端之間轉移(交換)。

    資源的表述可以有多種格式,例如HTML/XML/JSON/純文本/圖片/視頻/音頻等等。

    資源的表述格式可以通過協商機制來確定。請求-響應方向的表述通常使用不同的格式。

    1.3、狀態轉移

    狀態轉移說的是:在客戶端和服務器端之間轉移(transfer)代表資源狀態的表述。通過轉移和操作資源的表述,來間接實現操作資源的目的。

    RESTful規范

    1、對URL進行規范,寫RESTful格式的URL

    非REST的URL:http://..../queryItems.action?id=001

    REST的URL風格:http://..../items/001

    特點:URL簡潔,將參數通過URL傳到服務端,請求URL只是對資源的定位,因此不應該出現動詞

    2、http的方法規范

    不管是刪除、添加、更新,使用的URL是一致的,如果進行刪除,需設置HTTP的方法為delete,其它同理

    后臺controller方法:判斷http方法,如果是delete則執行刪除,如果是post則執行添加

    3、對http的contentType規范

    請求時執行contentType,要json數據,則設置成json格式的type

    而實際使用中第2點往往沒有做到

    二、RESTful的實現

    具體說,就是 HTTP 協議里面,四個表示操作方式的動詞:GET、POST、PUT、DELETE。

    它們分別對應四種基本操作:GET 用來獲取資源,POST 用來新建資源,PUT 用來更新資源,DELETE 用來刪除資源。

    REST 風格提倡 URL 地址使用統一的風格設計,從前到后各個單詞使用斜杠分開,不使用問號鍵值對方式攜帶請求參數,而是將要發送給服務器的數據作為 URL 地址的一部分,以保證整體風格的一致性。

    操作傳統方式REST風格
    查詢操作getUserById?id=1user/1–>get請求方式
    保存操作saveUseruser–>post請求方式
    刪除操作deleteUser?id=1user/1–>delete請求方式
    更新操作updateUseruser–>put請求方式

    三、HiddenHttpMethodFilter

    Q:由于瀏覽器只支持發送get和post方式的請求,那么該如何發送put和delete請求呢?

    A:SpringMVC 提供了 HiddenHttpMethodFilter 幫助我們將 POST 請求轉換為 DELETE 或 PUT 請求。

    3.1、HiddenHttpMethodFilter 過濾器處理put和delete請求

    要求:

    • 當前請求的請求方式必須為post。

    • 當前通過post請求封裝的實際請求方式通過請求參數_method傳輸。

    HiddenHttpMethodFilter 過濾器就會將當前請求的請求方式轉換為請求參數_method的值,因此請求參數_method的值才是最終的請求方式。

    3.2、在web.xml中注冊HiddenHttpMethodFilter

    <filter>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    3.3、過濾器的先后配置順序

    當 SpringMVC中提供了兩個過濾器:CharacterEncodingFilter和HiddenHttpMethodFilter 在web.xml中注冊時,必須先注冊CharacterEncodingFilter,再注冊HiddenHttpMethodFilter。

    原因:

    在 CharacterEncodingFilter 中通過 request.setCharacterEncoding(encoding) 方法設置字符集的 request.setCharacterEncoding(encoding) 方法要求前面不能有任何獲取請求參數的操作。

    而 HiddenHttpMethodFilter 恰恰有一個獲取請求方式的操作:String paramValue = request.getParameter(this.methodParam);

    關于SpringMVC對Restful風格的支持是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    班戈县| 天气| 郧西县| 高雄县| 内乡县| 新巴尔虎右旗| 连平县| 河南省| 洞头县| 砚山县| 来凤县| 海盐县| 华池县| 蓝山县| 东光县| 乐昌市| 丰镇市| 绵阳市| 峨山| 和龙市| 无极县| 舒城县| 固原市| 郎溪县| 织金县| 扎赉特旗| 永康市| 遂宁市| 九寨沟县| 武川县| 舒兰市| 宁国市| 贵溪市| 京山县| 舞阳县| 鄄城县| 邯郸市| 石林| 南溪县| 封开县| 安国市|