`

通过HiddenHttpMethodFilter过滤器实现REST风格的CRUD

阅读更多

1、HiddenHttpMethodFilter过滤器的作用
浏览器form表单只支持GET与POST请求,而DELETE、PUT等method并不支持,Spring3.0添加了一个过滤器,可以将这些请求转换为标准的http方法,使得支持GET、POST、PUT与DELETE请求。

 

2、REST风格示例
/order/1 HTTP GET:        得到 id=1的 order
/order/1 HTTP DELETE:  删除 id=1的 order
/order/1 HTTP PUT:        更新id=1的 order
/order    HTTP POST:       新增order

 

3、在web.xml文件中添加过滤器HiddenHttpMethodFilter

<!-- 配置HiddenHttpMethodFilter过滤器可以把POST请求转为DELETE或PUT请求  -->
<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>

 

4、控制器TestRequestMappingController.java

package com.springmvc.web.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/springmvc")
public class TestRequestMappingController {

	@RequestMapping(value = "/testRest/{id}", method = RequestMethod.PUT)
	public String testRestPut(@PathVariable Integer id) {
		System.out.println("testRest Put: " + id);
		return "success";
	}

	@RequestMapping(value = "/testRest/{id}", method = RequestMethod.DELETE)
	public String testRestDelete(@PathVariable Integer id) {
		System.out.println("testRest Delete: " + id);
		return "success";
	}

	@RequestMapping(value = "/testRest", method = RequestMethod.POST)
	public String testRest() {
		System.out.println("testRest POST");
		return "success";
	}

	@RequestMapping(value = "/testRest/{id}", method = RequestMethod.GET)
	public String testRest(@PathVariable Integer id) {
		System.out.println("testRest GET: " + id);
		return "success";
	}
	
}

 

 5、访问代码

<form action="<%=path%>/springmvc/testRest/1" method="post">
	<input type="hidden" name="_method" value="PUT"/>
	<input type="submit" value="Test Rest PUT" />
</form>

<form action="<%=path%>/springmvc/testRest/1" method="post">
	<input type="hidden" name="_method" value="DELETE"/>
	<input type="submit" value="Test Rest DELETE" />
</form>

<form action="<%=path%>/springmvc/testRest" method="post">
	<input type="submit" value="Test Rest POST" />
</form>

<a href="<%=path%>/springmvc/testRest/1">Test Rest GET</a>

 

 

 

分享到:
评论

相关推荐

    springmvc之rest风格的crud

    在Spring MVC框架中,REST(Representational State Transfer)风格是一种设计Web服务的常见方式,它强调资源的概念,并通过HTTP协议中的方法(GET、POST、PUT、DELETE)来操作这些资源。本教程主要针对初学者,讲解...

    rest风格+jdbctemplate的CRUD操作.rar

    使用SpringMVC+jdbctemplate实现REST风格的CRUD功能 完成功能:能够对用户进行CRUD操作,界面粗糙,只做演示 运行环境:eclipse2019.03+JDK8+Tomcat9.0.41+MySQL5.5 运用到的技术:spring+springMVC+jdbctemplate+...

    Spring MVC--7.REST风格 CRUD

    REST是一种软件架构风格,广泛应用于Web服务设计,它强调资源的识别和通过统一接口进行交互。Spring MVC作为一个强大的MVC框架,为构建REST API提供了便利。 首先,让我们理解CRUD操作: 1. **创建(Create)**:在...

    05实现mybatis简单crud功能demo

    05实现mybatis简单crud功能demo05实现mybatis简单crud功能demo05实现mybatis简单crud功能demo05实现mybatis简单crud功能demo05实现mybatis简单crud功能demo05实现mybatis简单crud功能demo05实现mybatis简单crud功能...

    springmvc之restful风格CRUD

    本文将深入探讨如何在Spring MVC中实现RESTful风格的CRUD操作,这对初学者尤其有价值。 首先,了解REST(Representational State Transfer,表述性状态转移)是一种网络应用程序的设计风格和开发方式,基于HTTP协议...

    基于ssm的旅游后台管理系统,使用AdminLTE 前端框架,实现基本的CRUD功能.zip

    基于ssm的旅游后台管理系统,使用AdminLTE 前端框架,实现基本的CRUD功能 基于ssm的旅游后台管理系统,使用AdminLTE 前端框架,实现基本的CRUD功能 基于ssm的旅游后台管理系统,使用AdminLTE 前端框架,实现基本的...

    SSM练手小项目实现简单的CRUD,数据库8.0

    SSM练手小项目实现简单的CRUD,数据库8.0SSM练手小项目实现简单的CRUD,数据库8.0SSM练手小项目实现简单的CRUD,数据库8.0SSM练手小项目实现简单的CRUD,数据库8.0

    基于ssm的旅游后台管理系统源码+项目说明(使用AdminLTE 前端框架,实现基本的CRUD功能).zip

    基于ssm的旅游后台管理系统源码+项目说明(使用AdminLTE 前端框架,实现基本的CRUD功能).zip 基于ssm的旅游后台管理系统源码+项目说明(使用AdminLTE 前端框架,实现基本的CRUD功能).zip 基于ssm的旅游后台管理...

    crud-rest-api:rest api执行crud操作

    当我们谈论“CRUD REST API”时,我们指的是通过RESTful API来实现对资源的创建、读取、更新和删除功能。 在Java世界中,实现CRUD REST API通常会使用Spring Boot框架,因为它提供了强大的工具和库来简化这个过程。...

    JSP+SERVLET实现简单的CRUD

    本教程将通过一个名为"crudDemo"的项目,讲解如何利用JSP+Servlet实现简单的CRUD(Create, Read, Update, Delete)操作,结合MVC(Model-View-Controller)设计模式、单例模式以及DAO(Data Access Object)模式来...

    VUE实现静态数据的CRUD功能

    在本案例中,“VUE实现静态数据的CRUD功能”指的是利用Vue.js创建一个能够进行创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)操作的应用。这种功能通常用于管理数据库中的数据,而在这个特定场景下,...

    jsp 实现的CRUD

    **JSP实现的CRUD操作详解** 在Web开发中,CRUD(Create, Read, Update, Delete)是最基本的数据操作,广泛应用于各种业务系统。本项目以JSP(JavaServer Pages)技术为核心,实现了对MySQL数据库的CRUD操作,旨在...

    SpringMVC+Spring+Hibernate+Oracle 实现图书管理(CRUD)

    在这个案例中,"SpringMVC+Spring+Hibernate+Oracle 实现图书管理(CRUD)"是一个使用了四大主流Java技术栈的项目,分别是SpringMVC作为前端控制器、Spring作为应用层框架、Hibernate作为持久层框架,以及Oracle作为...

    ssm框架实现CRUD

    这个资源显然提供了一个完整的示例,演示了如何利用这些技术来实现对数据库中的实体进行CRUD(Create、Read、Update、Delete)操作。 首先,SpringMVC作为Spring框架的一个模块,负责处理HTTP请求和响应,它是基于...

    jsp简单明了实现CRUD

    `CRUD完全步骤.docx`文件应该详细阐述了如何使用JSP实现CRUD操作。以下是基本流程: 1. **创建(Create)**:用户提交表单数据,JSP页面接收到请求后,通过PreparedStatement对象执行SQL的INSERT语句,将数据插入...

    SpringMVC 使用 RESTful 架构实现 CRUD 操作

    在本教程中,我们将探讨如何使用 SpringMVC 实现基于 RESTful 风格的 CRUD(Create、Read、Update、Delete)操作。 **CRUD 操作概述** CRUD 操作是任何数据驱动应用的基础,它们分别代表创建新记录、读取现有记录、...

    maven+springmvc+spring+mybatis+mysql整合实现用户的CRUD

    在"maven+springmvc+spring+mybatis+mysql整合实现用户的CRUD"中,Maven负责管理项目的所有依赖,包括Spring、Spring MVC、MyBatis等库,并确保它们的版本兼容。使用Maven,开发者可以通过编写`pom.xml`配置文件来...

    JSF实现的CRUD例子 myeclipse

    在这个"JSF实现的CRUD例子 myeclipse"中,我们将探讨如何使用JSF和MyEclipse开发一个简单的CRUD(Create, Read, Update, Delete)应用,而无需连接到数据库。 首先,"first-java-server-faces-tutorial-en.pdf"可能...

    SSM-PageHelper实现Crud操作

    在本项目中,我们将深入探讨如何在SSM框架下实现Ajax的CRUD(Create、Read、Update、Delete)操作,并利用PageHelper进行分页查询。 首先,Spring框架作为基础,负责管理应用的bean和依赖注入。在配置文件中,我们...

Global site tag (gtag.js) - Google Analytics