简介

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. socket网络

    Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...

  2. laravel 用户认证简单示例

    一.模型代码: 实现接口:\Illuminate\Contracts\Auth\Authenticatable 并引入trait:\Illuminate\Auth\Authenticatable &l ...

  3. laravel开发调试工具laravel-debugbar的安装

    一.使用 Composer 安装该扩展包 composer require barryvdh/laravel-debugbar --dev 二.(可选)修改配置文件app/config.php Lar ...

  4. 找工作的你不容错过的45个PHP面试题附答案(上篇)

    Q1: == 和 === 之间有什么区别? 如果是两个不同的类型,运算符 == 则在两个不同的类型之间进行强制转换 === 操作符执行 ’ 类型安全比较’ 这意味着只有当两个操作数具有相同的类型和相同 ...

  5. NCoreCoder.Aop详解

    于今天,功能终于完善度到比较满意的程度了 准备好好写一篇文章,而不是之前的流水账,分享一下最近这些天的踩坑 一开始AOP选的微软提供的DispatchProxy 关于这个,有大佬的文章,可以看看,了解 ...

  6. 每日一道 LeetCode (6):有效的括号

    每天 3 分钟,走上算法的逆袭之路. 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee ...

  7. Android BottomNavigationView的用法

    BottomNavigationView是相当于一个导航的标签,但是它的形式就是像QQ,微信之类的界面 这三个图标就是BottomNavigationView的体现. 至于写出后怎样绑定这三个界面,就 ...

  8. 精讲RestTemplate第3篇-GET请求使用方法详解

    本文是精讲RestTemplate第3篇,前篇的blog访问地址如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 精讲RestTemplate第2篇-多种底层H ...

  9. “随手记”开发记录day19

    将软件推荐给父母,先尝试使用软件,观察bug,若有啥不足的,才能及时修改.

  10. 在虚拟机中安装Mysql

    目录 下载Mysql 安装 配置mysql允许远程访问 下载Mysql 下载地址:http://dev.mysql.com/downloads/mysql 我这里下载的是安装版本 安装 配置mysql ...