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";
}
}

Restful对于URL的简化的更多相关文章

  1. restful风格url Get请求查询所有和根据id查询的合并成一个controller

    restful风格url Get请求查询所有和根据id查询的合并成一个controller的方法 原代码 // 127.0.0.1:8080/dep/s @ApiOperation(value=&qu ...

  2. Aspnet Mvc 前后端分离项目手记(三)关于restful 风格Url设计

    RESTful 不是新东西,简单理解它的核心思想就是最大程度的利用http协议的一些特点,比如uri,比如请求动词,在前后端分离的项目中会有大大的好处 ,好的设计的url简单明了,胜过详细的说明文档. ...

  3. 关于restful API url整理

    每个资源使用两个URL 资源集合用一个URL,具体某个资源用一个URL: /employees         #资源集合的URL /employees/56      #具体某个资源的URL 用名词 ...

  4. SpringMVC RESTful风格URL处理带点的参数

    使用了RESTful风格的URL.但是在处理带点的搜索参数,比如baidu.com的时候,后台就取不到正确的参数了. 搜索了下原因,原来是SpringMVC将点号看作扩展分隔符号了,因此后台没法拿到正 ...

  5. Yii 框架 URL路径简化

    Yii 框架的訪问地址若不简化会让人认为非常繁琐.未简化的地址一般格式例如以下: http://localhost:80/test/index.php?r=xxx/xxx/xxx 若是带有參数会更复杂 ...

  6. 【Python】Django 支持 restful 风格 url

    URL通配符示例: url(r'^file_download/(?P<filename>(.)*)$', views.FILE_DOWNLOAD_VIEW.as_view()), 代码示例 ...

  7. ThinkPHP的url简化

    TP的url请求简化 下面是apache的配置过程,可以参考: 1.       httpd.conf 配置文件中加载了mod_rewrite.so模块 2.       AllowOverride ...

  8. 【接口开发】浅谈 SOAP Webserver 与 Restful Webserver 区别

    接口,强大,简单,交互,跨越平台 下面简单阐述这两大接口思想 一 REST: REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性. ...

  9. SOAP Webservice和RESTful Webservice

    http://blog.sina.com.cn/s/blog_493a845501012566.html REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的 ...

随机推荐

  1. Jmeter使用笔记之意料之外的

    以下是在测试过程中按照以前loadrunner的思维来做的一点区别: 一.组织方式之setup 在用loadrunner做接口测试的时候如果不是针对login的测试,那么一般也会把login接口放到i ...

  2. Mac OS X使用简介

    一.OS X 版本以大型猫科动物命名 10.0   猎豹(Cheetah) 10.1   美洲狮(Puma) 10.2   美洲虎(Jaguar) 10.3   黑豹(Panther) 10.4   ...

  3. [转帖] tmux 的使用说明

    之前曾经看过 tmux 的简介 但是一直不会用 这次 看了下 原来是这么处理 不过 用windows 多了 还是感觉鼠标 操作多一些 全键盘操作的习惯 还是没有养成. 原贴地址: https://ww ...

  4. Caffe使用: Ubuntu 14.04(x64) 从cuda 7.0 升级到 cuda8.0

    由于之前已经在Ubuntu 14.04 x64上面安装cuda7.0+caffe, 并且已经配置好,caffe也已经跑通. 但是最近需要使用Torch,而Torch对cuda的要求是8.0,因此决定对 ...

  5. [代码]--GridControl使用技巧总结,更新中...

    1如何禁用GridControl中单击列弹出右键菜单 设置Run Design->OptionsMenu->EnableColumnMenu 设置为:false 2如何定位到第一条数据/记 ...

  6. codeforces906 D

    题目链接:http://codeforces.com/contest/906/problem/D 题意: 给你n个数,再给你l~r,求%m 题解: 一开始不会 后来查到了欧拉降幂定理: 然后就会了 这 ...

  7. C#处理MySql多个返回集的方法

    本文实例讲述了C#处理MySql多个返回集的方法.分享给大家供大家参考.具体方法如下: 关于Mysql返回多个集java和Php的较多,但是C#的完整代码好像没见过,研究了一下做个封装以后用 做一个M ...

  8. Helm一:简介

    目录 什么是Helm Helm解决的问题 Helm原理 Helm架构 Helm功能 Helm三个重要概念 Helm组件 Helm Client Tiller Server Helm实现 什么是Helm ...

  9. P2073 送花

    P2073 送花 题目背景 小明准备给小红送一束花,以表达他对小红的爱意.他在花店看中了一些花,准备用它们包成花束. 题目描述 这些花都很漂亮,每朵花有一个美丽值W,价格为C. 小明一开始有一个空的花 ...

  10. Java基础-使用Idea进行远程调试

    Java基础-使用Idea进行远程调试 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.