简介

RESTful风格(Representational State Transfer),又叫表现层状态转移,是一种开发理念,也是对HTTP协议很好的诠释

主要理念是将互联网中的网页、数据、服务都视作资源,每次请求只是使得资源的状态发生变化

具体来说,使用规范化的URL来定位网络中的资源,使用HTTP请求的四种请求方式使得资源的状态发生改变

如:GET用来获取资源,POST用来新建资源,PUT用来更新资源,DELETE用来删除资源

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点往往没有做到

springMVC对RESTful的支持

springmvc中使用URL模板映射支持URL规范

测试代码

    //通过URL中的{XXX}表示占位符,与@PathVariable(XXX)配合建立URL路径到参数的绑定关系
@RequestMapping("/user/{id}/{otherParam}")
@ResponseBody
public User queryUser(@PathVariable("id") String id) {
User user = new User();
if("123".equals(id)) {
user.setUsername("nlskyfree");
}
return user;
}

JSP页面

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<h2>Hello World!</h2>
用户名:${user.username}
</body>
</html>

修改web.xml映射方式

<servlet-mapping>
<!--
常用两种配置方式
第一种:*.action,访问以.action结尾的,由DispatcherServlet解析
第二种:/,所有访问的地址都由DispacherServlet进行解析,对于静态文件的解析需要配置不让DispacherServlet进行解析,
使用此种方式可以实现RESTful风格的url
-->
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

配置springmvc对静态资源的访问

注意以下标签需配合mvc:annotation-driven</mvc:annotation-driven>使用

    <!-- 静态资源管理 -->
<!-- 注意到mapping的值"/resources/**"有两个*,它表示映射resources/下所有的URL,包括子路径(即接多个/)
,如果只有一个*,将只能映射1级路径,即只能访问1,访问2、3将会报错。 -->
<mvc:resources location="/jsp" mapping="/jsp/**"/>
<mvc:resources location="/js" mapping="/js/**"/>

结果:

springMVC入门(七)------RESTFul风格的支持的更多相关文章

  1. SpringMvc笔记-对RESTFUL风格的配置

    1.@RequestMapping注解可以使用如下参数: 1,params:例如params={'username',"age!=100"}表示需要usernmame并且age 属 ...

  2. springMVC+json构建restful风格的服务

    首先.要知道什么是rest服务,什么是rest服务呢? REST(英文:Representational State Transfer,简称REST)描写叙述了一个架构样式的网络系统.比方 web 应 ...

  3. springMVC中添加restful 风格

    RESTful架构:是一种设计的风格,并不是标准,只是提供了一组设计原则和约束条件,也是目前比较流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. 关于 ...

  4. SpringMvc入门四----rest风格Url

    知识点: REST风格URL简介 SpringMvc对rest风格的支持 @PathVariable 获取 Url 变量 SpringMvc对静态资源的处理 REST风格URL简介: 我们平时看到的s ...

  5. springMvc框架之Restful风格

    method: @Controller @RequestMapping("/test") public String MyController{ @RequestMapping(& ...

  6. springmvc+swagger构建Restful风格文档

    本次和大家分享的是java方面的springmvc来构建的webapi接口+swagger文档:上篇文章分享.net的webapi用swagger来构建文档,因为有朋友问了为啥.net有docpage ...

  7. springmvc中配置RESTful风格控制器

    一般的http请求中其实只需要get和post就可以满足项目需求了,而为什么还要使用restful可能就是为了使请求url看起来更加直观,好看吧.. restful常用的请求方式:get,post,p ...

  8. springmvc复习笔记----Restful 风格,PathVariable获取 Url实例

    结构 包与之前相同 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&qu ...

  9. <SpringMvc>入门七 拦截器

    什么是拦截器 1.SpringMVC框架中的拦截器用于 对处理器 进行预处理和后处理的技术. 2.可以定义拦截器链,按照顺序执行. 3.拦截器和过滤器功能类似,区别在 拦截器 过滤器 过滤器是Serv ...

随机推荐

  1. linux gdb 入门级教程(小白专用)

    送给包含我在内的所有小白: 对于养linux真姬的本小白来说,既然你选择养它,那你就要满足他. 如果你养了它是为了码代码,那我觉得gdb应该是它的基本需求了吧?! 然而gdb哪有那些IDE来的简单啊, ...

  2. isinstance方法判断可迭代和迭代器

    from collections import Iterable print(isinstance([],Iterable)) print(isinstance( {}, Iterable)) pri ...

  3. Numpy改变数组的形状

    import numpy as np n = np.arange(10) # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) # 查看数组的大小 n.size # # 将数 ...

  4. PHP easter_date() 函数

    ------------恢复内容开始------------ 实例 输出不同年份的复活节日期: <?phpecho easter_date() . "<br />" ...

  5. Python List cmp()方法

    描述 cmp() 方法用于比较两个列表的元素.高佣联盟 www.cgewang.com 语法 cmp()方法语法: cmp(list1, list2) 参数 list1 -- 比较的列表. list2 ...

  6. Skill 如何翻转一个list

    https://www.cnblogs.com/yeungchie/ code 发现已经有内置了reverse(l_list) unless(fboundp('reverse) procedure(y ...

  7. 5.29 省选模拟赛 树的染色 dp 最优性优化

    LINK:树的染色 考场上以为这道题要爆蛋了 没想到 推出正解来了. 反正是先写了爆搜的 爆搜最近越写越熟练了 容易想到dp 容易设出状态 f[i][j]表示以i为根的子树内白色的值为j此时黑色的值怎 ...

  8. 2019 HL SC day10

    10天都过去了 4天都在全程懵逼.. 怎么可以这么难啊 我服了 现在想起依稀只记得一些结论 什么 反演? 什么后缀自动机?什么组合数的应用?什么神仙东西 ,不过讲课人的确都是神仙.(实名羡慕. mzx ...

  9. linux的PS进程和作业管理(进程调度,杀死进程和进程故障-僵尸进程-内存泄漏)

     Ps进程和作业管理 1.查看进程ps 1.格式 ps   ---查看当前终端下的进程 3种格式: SYSV格式   带 - 符号 BSD格式  不带 - 符号 GNU格式   长选项 2.ps -a ...

  10. 《笨办法学Python 3》python入门书籍推荐|附下载方式

    <笨办法学Python 3>python入门书籍免费下载 内容简介 本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用.这本书以习题的方式引导读 ...