zoukankan      html  css  js  c++  java
  • 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";
        }
    } 
  • 相关阅读:
    数字三角形W(加强版) codevs 2189
    数字三角形W(加强版) codevs 2189
    线段树模板
    树状数组模板 洛谷3374
    洛谷 2327 [SCOI2005]扫雷
    洛谷 2327 [SCOI2005]扫雷
    洛谷1144 最短路计数
    洛谷1144 最短路计数
    洛谷1346 电车
    洛谷1346 电车
  • 原文地址:https://www.cnblogs.com/lizhangyong/p/8979261.html
Copyright © 2011-2022 走看看