Restful對於URL的簡化

  REST是英文representational state transfer(表象性狀態轉變)或者表述性狀態轉移,它是web服務的一種架構風格。使用HTTP,URI,XML,JSON,HTML等廣泛流行的標準和協議;輕量級,跨平臺,跨語言的架構設計;它是一種設計風格,不是一種標準,是一種思想。

  Rest架構的主要原則:
      網絡上的所有事物都被抽象爲資源;
     每個資源都有一個唯一的資源標識符;
     同一個資源具有多種表現形式(xml,json等);
     對資源的各種操作不會改變資源標識符;
     所有的操作都是無狀態的;
     符合REST原則的架構方式即可稱爲RESTful。

  什麼是Restful?對應的中文是rest式的;Restful web service是一種常見的rest的應用,是遵守了rest風格的web服務;rest式的web服務是一種ROA(The Resource-Oriented Architecture)(面向資源的架構)。

   爲什麼會出現Restful?
  在Restful之前的操作:
  http://127.0.0.1/user/query/1 GET  根據用戶id查詢用戶數據
  http://127.0.0.1/user/save POST 新增用戶
  http://127.0.0.1/user/update POST 修改用戶信息
  http://127.0.0.1/user/delete GET/POST 刪除用戶信息

  RESTful用法:
  http://127.0.0.1/user/1 GET  根據用戶id查詢用戶數據
  http://127.0.0.1/user  POST 新增用戶
  http://127.0.0.1/user  PUT 修改用戶信息
  http://127.0.0.1/user  DELETE 刪除用戶信息

  

  SpringMVC原生態的支持了REST風格的架構設計,所涉及到的註解:

---@RequestMapping
---@PathVariable
---@ResponseBody

   前端訪問頁面index.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <a  href="/test1.html">去Controller的test1</a>
  <a  href="/test2.html">去測試性能監控</a>
  <hr>
  普通方式<br>
  <a href="/test2/delete.html?delID=AA">刪除這個數據A</a>
  <a href="/test2/delete.html?delID=BB">刪除這個數據B</a>
  <a href="/test2/delete.html?delID=CC">刪除這個數據C</a>
  <a href="/test2/delete.html?delID=DD">刪除這個數據D</a>
  <a href="/test2/delete.html?delID=EE">刪除這個數據E</a>

  演示一下Resful<br>
  <a href="/test2/delete/AA/數據A.html">刪除這個數據A</a><!-- AA和數據A,是給後臺傳輸的兩個數據  -->
  <a href="/test2/delete/BB/數據B.html">刪除這個數據B</a>
  <a href="/test2/delete/CC/數據C.html">刪除這個數據C</a>
  <a href="/test2/delete/DD/數據D.html">刪除這個數據D</a>
  <a href="/test2/delete/EE/數據E.html">刪除這個數據E</a>
  </body>/
</html>

   後臺控制器TestController2.java:

package com.itszt.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 * 測試RestFul
 */
@RequestMapping("test2")
@Controller
public class TestController2 {
    @RequestMapping("delete/{delID}/{delTitle}")
    public String delete(@PathVariable(name = "delID") String delID, @PathVariable(name = "delTitle") String delTitle) {
        System.out.println("delID = [" + delID + "], delTitle = [" + delTitle + "]");
        return "result";
    }
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章