SpringMVC的REST风格的四种请求方式总结

一、 在HTTP 协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。

它们分别对应四种基本操作:

  1、GET ====== 获 取资源
  2、POST ======新建资源
  3、PUT======= 更新资源
  4、DELETE==== 删除资源

  

二、REST:即 Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便, 所以正得到越来越多网站的采用。

我们可以通过rest风格占位符方式,利用@PathVariable注解将占位符的值赋给调用方法参数,实现结果:

/某路径/1 HTTP GET : 得到 id = 1 的 一条数据
/某路径/1 HTTP DELETE: 删除 id = 1的 一条数据
/某路径/1   HTTP PUT: 更新id = 1的 一条数据
/某路径 HTTP POST: 新增一条数据

实现方式(REST风格四种请求方式的调用):

我们通过@RequestMapping映射请求中的method参数实现四种请求方式的调用,以下为示例代码。

GET请求:

@RequestMapping(value="/student",method=RequestMethod.GET)
 public ModelAndView toAddPage(){
  ModelAndView mView=new ModelAndView();
  mView.addObject("employee",new Employee());
  mView.setViewName("add-stu");
  mView.addObject("departments", departmentDao.getDepartments());
  return mView;
 }

POST请求:

@RequestMapping(value="/student",method=RequestMethod.POST)
 public String addStu(Employee employee){
  employeeDao.save(employee);
  return "redirect:/show" ;
 }

DELETE请求:

@RequestMapping(value="/student/{id}",method=RequestMethod.DELETE)
 public String deleteStu(@PathVariable(value="id") Integer id){
  employeeDao.delete(id);
  return "redirect:/show" ;
 }

PUT请求:

@RequestMapping(value="/student",method=RequestMethod.PUT)
 public String Update(@RequestParam(value="id")Integer id,Employee employee){
  employeeDao.save(employee);
  return "redirect:/show" ;
 }

三、将POST请求转化为put请求和delele请求

1.在web.xml文件中配置HiddenHttpMethodFilter过滤器:

<!-- HiddenHttpMethodFilter过滤器可以将POST请求转化为put请求和delete请求! -->
   <filter>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
   </filter-mapping>

2.在表单域中需要携带一个name值为_method,value值为put或者delete的参数,如下所示:

<form action="" method="post">
 <input type="hidden" name="_method" value="delete">
</form>
<form:form action="${pageContext.request.contextPath}/student" method="post" modelAttribute="employee">
  <c:if test="${empty employee.id }">
   姓名:<form:input path="lastName"/><br>
  </c:if>
  <c:if test="${!empty employee.id }">
   姓名:<form:input path="lastName" readonly="true"/><br>
    <form:hidden path="id"/>
    <input type="hidden" name="_method" value="put">
  </c:if>
  邮箱:<form:input path="email"/><br>
  <%
   Map<String,Object>map=new HashMap<String,Object>();
   map.put("1","Male");
   map.put("0", "Female");
   request.setAttribute("genders", map);
  %>
  性别:<form:radiobuttons path="gender" items="${genders}"/><br>
  部门:<form:select path="department.id" items="${departments}" itemValue="id" itemLabel="departmentName"></form:select><br>
  <input type="submit" value="提交">
 </form:form>

最后在Controller层调用即可。根据@RequestMapping的value值以及携带的参数、请求方式查找匹配函数。

以上这篇SpringMVC的REST风格的四种请求方式总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 学习SpringMVC——如何获取请求参数详解

    @RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他(@CookieValue)!她(@ModelAndView)!它(@ModelAttribute)!没错,仅注解这块,spring mvc就为你打开了五彩斑斓的世界.来来来,不要兴(mi)奋(hu),坐下来,我们好好聊聊这么些个注解兄弟们~~~(wait, 都没有听过? 好,来,你坐前排,就你!)  一.spring mvc如何匹配请求路径--"请求路径哪家

  • 详解Spring框架之基于Restful风格实现的SpringMVC

    如果说现在你要做一个系统,假设说有一个模块属于公告管理,那么我们可能安排路径的时候会这样安排NewsAction路径: 增加新闻:/pages/back/admin/news/add.action: 新闻列表:/pages/back/admin/news/list.action 随着技术的发展,有一种新型的架构设计思想:Restful风格,也就是说利用一个简单的路径,而后根据HTTP提交模式不同.那么可以完成不同的功能,也就是说: 看一个新闻内容:/news/1,GET: 删除新闻:/news/

  • SpringMVC的REST风格的四种请求方式总结

    一. 在HTTP 协议里面,四个表示操作方式的动词:GET.POST.PUT.DELETE. 它们分别对应四种基本操作: 1.GET ====== 获 取资源 2.POST ======新建资源 3.PUT======= 更新资源 4.DELETE==== 删除资源 二.REST:即 Representational State Transfer.(资源)表现层状态转化.是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便, 所以正得到越来越多网站的采用. 我们可以通过re

  • vue结合axios实现restful风格的四种请求方式

    目录 1.npm下载axios到vue项目中 2.main.js里引入 3.定义全局变量路径(不是必须的,但是推荐) (1).方法一 (2).方法二 4.在具体需求的地方使用 (1).get (2).post (3).put (4).delete Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中,基本请求有5种: get:多用来获取数据 post:多用来新增数据 put:多用来修改数据(需要传递所有字段,相当于全部更新) patch:多用来修改数据,

  • postman模拟post请求的四种请求体

    目录 1.application/x-www-form-urlencoded 2.multipart/form-data 3. raw 4.binary 1.application/x-www-form-urlencoded 浏览器的原生 表单,其中ajax也是用这种方式提交的,主要是key-value 键值对的形式.一般的请求方式如下图所示: POST HTTP/1.1 Host: test.app.com Content-Type: application/x-www-form-urlenc

  • SpringBoot异步处理的四种实现方式

    本篇文章我们以SpringBoot中异步的使用(包括:异步调用和异步方法两个维度)来进行讲解. 异步请求与同步请求 我们先通过一张图来区分一下异步请求和同步请求的区别: 在上图中有三个角色:客户端.Web容器和业务处理线程. 两个流程中客户端对Web容器的请求,都是同步的.因为它们在请求客户端时都处于阻塞等待状态,并没有进行异步处理. 在Web容器部分,第一个流程采用同步请求,第二个流程采用异步回调的形式. 通过异步处理,可以先释放容器分配给请求的线程与相关资源,减轻系统负担,从而增加了服务器对

  • SpringMVC实现RESTful风格:@PathVariable注解的使用方式

    目录 1.RESTful简介 2.SpringMVC实现RESTful风格 2.1 @PathVariable注解 2.2 修改SpringMVC的前端控制器配置 3.静态资源访问问题 3.1 解决方法一 3.2 解决方法二 4.综合实例 1.RESTful简介 RESTful为Representational State Transfer的缩写,中文释义为"表现层状态转换".RESTful不是一种标准,而是一种设计风格. RESTful本质上是一种分布式系统的应用层解决方案,它的主要

  • 解决springmvc项目中使用过滤器来解决请求方式为post时出现乱码的问题

    在spring项目中,当请求方式为post时,可能在获取数据之后会有乱码的情况,其中一种解决方法就是在拿到请求参数之前设置编码格式为utf-8,如下 request.setCharacterEncoding("utf-8"); String strId = request.getParameter("id"); String strName = request.getParameter("name"); String strSex = reque

  • 详解spring security四种实现方式

    spring security实现方式大致可以分为这几种: 1.配置文件实现,只需要在配置文件中指定拦截的url所需要权限.配置userDetailsService指定用户名.密码.对应权限,就可以实现. 2.实现UserDetailsService,loadUserByUsername(String userName)方法,根据userName来实现自己的业务逻辑返回UserDetails的实现类,需要自定义User类实现UserDetails,比较重要的方法是getAuthorities()

  • 详解C++中常用的四种类型转换方式

    目录 1.静态类型转换:static_cast(exp) 2.动态类型转换:dynamic_cast(exp) 3.常类型转换:const_case(exp) 4. 解释类型转换: reinterpret_cast(exp) 1.静态类型转换:static_cast(exp) 1.1静态类型转换主要用于两种转换环境 1.1.1 C++内置类型的转换:与C风格强转类似. 与c相同的地方: #include <iostream> using namespace std; int main() {

  • buildAdmin开源项目引入四种图标方式详解

    目录 正文 引入Element-Plus图标库 引入Iconfont图标库 引入FontAwesome图标库 引入本地svg图标 正文 在项目开发中,我们经常使用可能都是UI组件库里的图标,当然由于业务需要,可能当前图标库没有我们需要的图标这时候就需要引入其它图标库的图标,比如iconfont.FontAweSome.本地图标库.在了解引入这些图标库之前,我们先学习一下各种图标库的引入使用: Element-Plus:由于elemen官方已经把图标封装成了组件,所以当我们引入图标的时候,需要全局

  • 全面了解OAuth 2.0四种授权方式金三银四无惧面试

    目录 首先 第一种授权方式:授权码 第二种方式:隐藏式 第三种方式:密码式 第四种方式:凭证式 首先 我们需要清楚 OAuth 是什么? OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者.......资源所有者同意以后,资源服务器可以向客户端颁发令牌.客户端通过令牌,去请求数据. 上面这段话的意思就是:OAuth 的核心就是向第三方应用颁发令牌. 由于互联网有多种场景,OAuth 2.0 规定了四种获得令牌的流程,你可以选择最适合自己的那一种,向第三方应用颁发令牌. 下面

随机推荐