spring mvc 支持REST风格的请求方法,GET、POST、PUT和DELETE四种请求方法分别代表了数据库CRUD中的select、insert、update、delete,下面演示一个简单的REST实现过程。

参照http://blog.csdn.net/u011403655/article/details/44571287创建一个spring mvc工程

创建一个包,命名为me.elin.rest,添加一个RESTMethod类,代码如下

 package me.elin.rect;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/rest")
public class RESTMethod {
private static final String SUCCESS = "success";
// 该方法接受POST传值,请求url为/rest/restPost
@RequestMapping(value = "restPost", method = RequestMethod.POST)
public String restPost(@RequestParam(value = "id") Integer id) {
System.out.println("POST ID:" + id);
return SUCCESS;
}
// 该方法接受GET传值,请求url为/rest/restGet
@RequestMapping(value = "/restGet", method = RequestMethod.GET)
public String restGet(@RequestParam(value = "id") Integer id) {
System.out.println("GET ID:" + id);
return SUCCESS;
}
// 该方法接受PUT传值,请求url为/rest/restPut
@RequestMapping(value = "/restPut", method = RequestMethod.PUT)
public String restPut(@RequestParam(value = "id") Integer id) {
System.out.println("PUT ID:" + id);
return SUCCESS;
}
// 该方法接受DELETE传值,请求url为/rest/restDelete
@RequestMapping(value="/restDelete",method=RequestMethod.DELETE)
public String restDelete(@RequestParam(value = "id") Integer id) {
System.out.println("DELETE ID:" + id);
return SUCCESS;
}
}

在web.xml中添加一个filter,用来过滤rest中的方法。代码如下

 <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>

在WebContent下创建index.jsp文件,添加如下内容

 <a href="rest/restGet?id=1">发送GET请求</a>
<form action="rest/restPost" method="post">
<input type="text" name="id" value=""/>
<input type="submit" value="发送POST请求"/>
</form>
<form action="rest/restPut" method="post">
<input type="hidden" name="_method" value="PUT">
<input type="text" name="id" value="">
<input type="submit" value="发送PUT请求">
</form>
<form action="rest/restDelete" method="post">
<input type="hidden" name="_method" value="DELETE">
<input type="text" name="id" value="">
<input type="submit" value="发送DELETE请求">
</form>

其中get和post方法是html中自带的,但是不支持PUT和DELETE方法,所以需要通过POST方法模拟这两种方法,只需要在表单中添加一个隐藏域,名为_method,值为PUT或DELETE。
运行程序,index.jsp中一个超链接和三个表单分别表示了四种请求方法。

springmvc实现REST中的GET、POST、PUT和DELETE的更多相关文章

  1. SpringMVC结合easyUI中datagird实现分页

    SpringMVC结合easyUI中datagird实现分页 DataGrid以表格形式展示数据,并提供了丰富的选择.排序.分组和编辑数据的功能支持.轻量级,单元格合并.多列标题.冻结列和页脚只是其中 ...

  2. 解决SpringMVC拦截器中Request数据只能读取一次的问题

    解决SpringMVC拦截器中Request数据只能读取一次的问题 开发项目中,经常会直接在request中取数据,如Json数据,也经常用到@RequestBody注解,也可以直接通过request ...

  3. SpringMVC重定向路径中带中文参数

    SpringMVC重定向路径中带中文参数 springboot重定向到后端接口测试 package com.mozq.http.http_01.demo; import org.springframe ...

  4. springmvc配置过程中遇到的一些问题总结

    springmvc配置过程中遇到的一些问题总结 1.配置tomcat过程中的错误: 2.配置web.xml中DispatchServlet报红(配置好已有依赖条件下) 解决的办法: 因为新添加依赖,m ...

  5. Web Api中实现Http方法(Put,Post,Delete)

    在Web Api中实现Http方法(Put,Post,Delete) 系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 在Web Api中,我 ...

  6. 一起学HBase——总结HBase中的PUT、GET、DELETE操作

    传统的关系型数据库有CRUD增删改查操作,同样对于NoSQL列式数据库也有CRUD操作.本文对HBase中常用的Scan.GET.PUT.DELETE操作的用法做个总结. Put操作 Put相当于传统 ...

  7. ZT c++ 中的重载全局new,delete

    c++ 中的重载全局new,delete 分类: c++ 2010-08-06 10:31 116人阅读 评论(1) 收藏 举报 deletec++file编译器语言工作 最近做一个小项目,对c++又 ...

  8. SpringMVC的Controller中使用线程安全的初始化

    因为SpringMVC的Controller默认是单例, 在这种情况下, Controller中使用的私有变量必须也是单例, 例如各种service, 否则会有多线程访问数据互相修改的问题. 对于需要 ...

  9. 一个SpringMVC简单Demo中出现的错误

    最近在学springmvc 一个简答的Springmvc配置包括如下步骤: 1.在 web.xml 文件中配置 DispatcherServlet (该中央控制器相当于 MVC 模式中的 C),还可以 ...

  10. springmvc的3中路径风格

    1.导入相应的jar包,文件放置情况 2.web.xml <?xml version="1.0" encoding="UTF-8"?> <we ...

随机推荐

  1. win10的独立存储

    win10的独立存储和win8的大致相同 Windows.Storage.ApplicationDataContainer roamingSettings = Windows.Storage.Appl ...

  2. H5与Activity之间的通信(调用)

    1.通过H5页面的超链接尾部信息不同进行跳转(类似于URL拦截器) 例如:控件x的href="http://www.example.com/?menu_id=1", 在代码中添加w ...

  3. 使用OpenFileDialog实现图片上传

    demo效果图:

  4. c#隐式转换之有符号位转换

    有符号位类型的转换,额外的高位用源表达式的符号位填充.这样就维持了被转换的值的正确符号和大小. 特别注意的是负数的转换,额外的高位用1填充,因为负数的二进制表示是对应正数的二进制取反加1,所以高位用1 ...

  5. 使用GitBook编写文档

    GitBook 简介 GitBook 是一个通过 Git 和 Markdown 来撰写书籍的工具,最终可以生成 3 种格式: 静态站点:包含了交互功能(例如搜索.书签)的站点 PDF:PDF 格式的文 ...

  6. IOS 在Xcode 4.x以上添加静态库

    参考网站:http://my.oschina.net/edwardlau/blog/95924 常用的代码可以通过静态库进行抽出来作为公共类方法,方便在其他地方调用,一般来说我们要准备2套静态库,一套 ...

  7. Redis学习 - 入门

    业精于勤,荒于嬉:行成于思,毁于随 -- 韩愈·<进学解>   因为工作中需要用到Redis,所以最近抽点时间看了一下,现在将学习的内容整理一下.   一.简介 1.Redis是什么? R ...

  8. Spring4.0学习笔记(7) —— 通过FactoryBean配置Bean

    1.实现Spring 提供的FactoryBean接口 package com.spring.facoryBean; import org.springframework.beans.factory. ...

  9. PHP开发套件

    Windows系统下开发 环境配置: PHPstudy----立即下载 开发工具: PHPstorm----立即下载 引用一个注册服务器地址:潘田--phpstorm 2016.1注册码 当然推荐大家 ...

  10. SCJP_104——题目分析(3)

    11. what is reserved words in java?A. run B. default C. implement D. import Java 中,给标识符取名的时候,不能使用关键字 ...