8.springMVC中的RESTful架构风格
RESTful架构:是一种设计的风格,并不是标准,只是提供了一组设计原则和约束条件,也是目前比较流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。
关于RESTful架构给你一个链接讲的挺好的:http://www.ruanyifeng.com/blog/2011/09/restful
这里我结合springMVC讲解一下RESTful在springMVC中的使用,在讲之前先来看看RESTful提倡哪些做法:
- 他会对url进行规范:
a) 非REST风格的url:localhost:8080/springmvc?name=小白&password=123;
b) REST风格的url:localhost:8080/springmvc/小白/123;
分析:
- 直观上看是不是比较简洁
- 看不懂:隐藏了参数名称,安全性,防止被攻击
- 所有的url都可以当成是资源
- 对http的方法进行规范
a)不管是删除,添加,更新….使用的url都是一致,那么如果需要删除,就把http的方法设置删除
b) 控制器:通过判断http的方法来执行操作(增删改查)
目前这种做法还没有被广泛采用
3.对contentType也进行规范
a) 就是在请求是指定contentType的类型(json交互中就有体现)
4.接下来看看springMVC中怎么实现RESTful风格
首先:你在请求路径上@RequestMapping(value = "/hello_rest/{name}/{password}")需要用{}来动态匹配参数
其次:方法的形参上要@PathVariable("name")来匹配上面的参数,这里@PathVariable中的字符串必须和你{}中的名字一致
访问路径:localhost:8080/工程名/hello_rest/xx/xx(其中xx就是你随便填写的内容,它会匹配到后台的name和password的值)
比如:
你输入的路径是:localhost:8080/工程名/hello_rest/小白/admin
后台会匹配到:name="小白",password="admin"
/**
* 1.路径的变化:/hello_rest/{name}/{password}其中{}相当于可以的参数
* 2.参数的写法:需要利用@PathVariable("name")来匹配上面的参数
* 3.至于@PathVariable后面跟的形参你就可以随便命名了
* @param username
* @param password
* @return
*/
@RequestMapping(value = "/hello_rest/{name}/{password}")
public String hello_rest(@PathVariable("name") String username,
@PathVariable("password") String password) {
if("admin".equals(username)&"123".equals(password)){
System.out.println("登录成功");
return "hello";
}
return "hello";
}
这种写法和第一种类似,只不过是把{}动态匹配参数的放到前面去了,其原理是一样的,不多说,直接看看这个访问路径的写法就好
访问路径:localhost:8080/工程名/xx/xx/hello_rest
只是把参数由后面放到前面去了而已。
/**
* 1.路径的变化:/{name}/{password}/hello_rest其中{}相当于可以的参数
* 2.参数的写法:需要利用@PathVariable("name")来匹配上面的参数
* 3.至于@PathVariable后面跟的形参你就可以随便命名了
* @param username
* @param password
* @return
*/
@RequestMapping(value = "/{name}/{password}/hello_rest")
public String hello_rest2(@PathVariable("name") String username,
@PathVariable("password") String password) {
if("admin".equals(username)&"123".equals(password)){
System.out.println("登录成功");
return "hello";
}
return "hello";
}
8.springMVC中的RESTful架构风格的更多相关文章
- springMVC 中的restful 架构风格
RESTful架构 : 是一种设计的风格,并不是标准,只是提供了一组设计原则和约束条件,也是目前比较流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. ...
- (转载)RESTful架构风格下的4大常见安全问题
转载自<RESTful架构风格下的4大常见安全问题>,作者:马伟 伴随着RESTful架构风格的大量应用微服务架构的流行,一些本来难以察觉到的安全问题也逐渐开始显现出来.在我经历过的各种采 ...
- 【转载】RESTful 架构风格概述
本文转载自https://blog.igevin.info/posts/restful-architecture-in-general/ 在移动互联网的大潮下,随着docker等技术的兴起,『微服务』 ...
- RESTful 架构风格
在移动互联网的大潮下,『微服务』的概念也越来越被大家接受并应用于实践,日益增多的web service逐渐统一于RESTful 架构风格,如果开发者对RESTful 架构风格不甚了解,则开发出的所谓R ...
- springMVC中添加restful 风格
RESTful架构:是一种设计的风格,并不是标准,只是提供了一组设计原则和约束条件,也是目前比较流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. 关于 ...
- restful 架构风格的curd(增删改查)
restful架构 概念:REST指的是一组架构约束条件和原则,如果一个架构符合REST的约束条件和原则,就称之为RESTful架构. restful不是一个专门的技术,他是一个规范.规范就是写写代码 ...
- springmvc中配置RESTful风格控制器
一般的http请求中其实只需要get和post就可以满足项目需求了,而为什么还要使用restful可能就是为了使请求url看起来更加直观,好看吧.. restful常用的请求方式:get,post,p ...
- SpringMVC框架——集成RESTful架构
REST:Representational State Transfer 资源表现层状态转换 Resources 资源 Representation 资源表现层 State Transfer 状态转换 ...
- RESTful 架构风格概述
http://blog.igevin.info/posts/restful-architecture-in-general/(非常好) http://blog.igevin.info/posts/re ...
随机推荐
- popwindow设置背景半透明
WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = 0.5f; //0.0-1.0 getWindow(). ...
- Opencv基本数据结构
Opencv的数据结构:CvPoint系列.CvSize系列 .CvSize.CvRect.CvScalar.CvAr 大多数据结构都在cxtypes.h这个头文件里定义 1.CvPoint系列: ...
- 蓝牙协议栈中的 OSAL
蓝牙协议栈里的操作系统叫做 OSAL(操作系统抽象层).它并非一个真正意义上的操作系统,它只是实现了操作系统的一些功能,如任务切换.内存管理. OSAL 产生的根源:基于蓝牙协议栈开发的产品,实际上是 ...
- 常见C内存管理程序
本文主要关注的是C内存管理程序,比较著名的几个C内存管理程序,其中包括: l Doug Lea Malloc:Doug Lea Malloc实际上是完整的一组分配程序,其中包括Doug Lea的原 ...
- 【转载】开发备必:WEB前端开发规范文档
规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必 须按本文档规范进行前台页面开发. 本文档如有不对或者 ...
- Maven根据不同个环境打包, 获取不同的配置文件等等
http://www.cnblogs.com/tartis/p/5391079.html <project xmlns="http://maven.apache.org/POM/4.0 ...
- bzoj3087: Coci2009 misolovke
Description [misolovke]给定一个 N*N 的网格.每个格子里至少会有一个捕鼠器, 并且已知每个格子里的捕鼠器个数.现在需要在 每一行 中选取恰好 K 个连续的格子, 把里面的捕鼠 ...
- Django常用命令及参数配置(Django 1.8.6)
常用命令 #新建Django项目 django-admin startproject mysite(项目名) #新建一个APP cd mysite python manager.py startapp ...
- make自动生成依赖文件的两种形式
最近编译源文件发现当修改头文件后,make并不会自动把包含此头文件的所有源文件重新编译,而每次都是需要把对应的中间文件清除才能重新编译,非常的麻烦.因此需要make自动对源文件所依赖的头文件进行管理, ...
- 在 Windows上配置NativeScript CLI
1.安装Node.js,到https://nodejs.org/下载安装 2.安装Chocolatey,https://chocolatey.org/,先看一下关于chocolatey的介绍: 安装方 ...