`

spring web put与delete方法的调用

 
阅读更多

 

在form中,method只用GET/POST。如果使用PUT/DELETE呢

在spring 的web应用中使用PUT/DELETE访问方式:代码如下:

	<form th:action="@{/app/account/update}" method="post">
			<input type="hidden" name="_method" value="PUT" />
			<input type="submit" value="submit" />
		</form>

 将你要的访问方式如下<input type="hidden" name="_method" value="PUT" />放到form中,并设置form的方式method="post"。

为什么是这样呢?

因为在页面访问要通过一个spring过滤器:HiddenHttpMethodFilter

代码如下:

public class HiddenHttpMethodFilter extends OncePerRequestFilter {

	/** Default method parameter: {@code _method} */
	public static final String DEFAULT_METHOD_PARAM = "_method";

	private String methodParam = DEFAULT_METHOD_PARAM;


      @Override
	protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
			throws ServletException, IOException {
               //当method的方式为post并且_method不为空
		String paramValue = request.getParameter(this.methodParam);
		if ("POST".equals(request.getMethod()) && StringUtils.hasLength(paramValue)) {
			String method = paramValue.toUpperCase(Locale.ENGLISH);//转大写英文
			//关键之处
                         HttpServletRequest wrapper = new HttpMethodRequestWrapper(request, method);
			filterChain.doFilter(wrapper, response);
		}
		else {
			filterChain.doFilter(request, response);
		}
	}

        //method转换
	/**
	 * Simple {@link HttpServletRequest} wrapper that returns the supplied method for
	 * {@link HttpServletRequest#getMethod()}.
	 */
	private static class HttpMethodRequestWrapper extends HttpServletRequestWrapper {

		private final String method;

		public HttpMethodRequestWrapper(HttpServletRequest request, String method) {
			super(request);
			this.method = method;
		}

		@Override
		public String getMethod() {
			return this.method;
		}
	}

}

 这样一看就明明白白了。。。

 

 

@RequestMapping(value="/update",method=RequestMethod.PUT)
	public String update() throws Exception{
		System.out.println("test");
		return "account/get";
	}

 

0
1
分享到:
评论

相关推荐

    spring-webmvc.rar

    12. **RESTful API支持**:Spring Web MVC通过@RequestMapping和HTTP动词(GET、POST、PUT、DELETE等)支持创建RESTful Web服务。 13. **国际化的支持**:通过MessageSource和LocaleResolver,Spring Web MVC可以...

    CXF Spring Web Service 程序

    【CXF与Spring整合Web服务详解】 在Java世界中,Apache CXF是一个广泛使用的开源框架,用于构建和部署Web服务。它提供了丰富的功能,包括SOAP、RESTful API的支持,以及与Spring框架的深度集成。本篇文章将深入探讨...

    springweb代码

    - Spring Web支持创建RESTful服务,通过HTTP动词(GET、POST、PUT、DELETE)和URI资源来操作数据。 12. **异常处理**: - 可以全局统一处理异常,通过`@ControllerAdvice`和`@ExceptionHandler`注解。 13. **...

    Spring &Web; &MVC;外文翻译.zip

    13. **RESTful API**: Spring MVC支持构建RESTful Web服务,利用HTTP方法(GET、POST、PUT、DELETE等)表示资源的操作。 14. **Async Support**: Spring MVC提供了异步处理支持,允许控制器方法返回`DeferredResult...

    Spring实现RESTful Web 服务Demo

    RESTful Web服务则是通过HTTP方法(GET、POST、PUT、DELETE等)来操作资源,符合 Representational State Transfer(表述性状态转移)原则。Spring MVC可以轻松地创建符合REST原则的控制器,处理这些HTTP请求。 二...

    整合Primeface Hibernate Spring, SpringWeb

    5. **Restful**:RESTful是一种Web服务设计风格,强调使用HTTP方法(GET、POST、PUT、DELETE等)来操作资源。本项目中提到提供Restful风格的调用接口,意味着服务器端会提供一组符合REST原则的API,允许客户端以统一...

    spring开发web项目的相关jar包

    12. **RESTful服务**:Spring MVC支持创建RESTful风格的Web服务,使用HTTP动词(GET、POST、PUT、DELETE等)和资源URL来实现服务接口。 13. **JSON处理**:Spring MVC与Jackson或Gson等库集成,方便地将Java对象...

    spring-web-5.0.2.RELEASE.jar

    它支持HTTP方法(GET、POST、PUT、DELETE等)、路径变量、请求参数,以及JSON、XML等多种数据格式的处理,大大简化了RESTful服务的开发。 五、WebSocket支持 Spring Web还提供了WebSocket支持,允许双向通信,即...

    webservice 各种调用方法汇总

    它提供了服务端和客户端的实现,使得开发者能够快速地创建和调用Web服务。Axis2使用XMLBeans或Aegis作为数据绑定引擎,将XML与Java对象映射。 6. Spring Web Services: Spring框架提供了Spring Web Services模块...

    spring-webmvc-4.08jar包及相关jar包

    11. **RESTful支持**:Spring MVC支持创建RESTful风格的Web服务,通过@RequestMapping注解的HTTP方法属性,可以轻松实现GET、POST、PUT、DELETE等操作。 12. **拦截器**:Spring MVC中的拦截器(HandlerInterceptor...

    基于 Java Spring 将上述类的方法对外提供 RESTful 服务并调用

    在本教程中,我们将探讨如何基于 Java Spring 框架将一个特定的类的方法对外提供 RESTful 服务并进行调用。首先,我们有一个名为 `Person` 的类,包含姓名 (name)、年龄 (age) 和性别 (gender) 属性,以及对应的 ...

    Spring JdbcTemplate调用Oracle存储过程实现CRUD

    在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储过程,然后编写 Java 代码使用 Spring JdbcTemplate 调用...

    创建Web 应用程序和服务 和 web service 调用 源码

    总的来说,创建Web应用程序和服务以及调用Web Service是IT专业人员必备的技能。从需求分析、设计、编码到测试,每个环节都需要严谨对待。通过学习和实践,你可以开发出高效、稳定的Web应用,为用户提供卓越的体验。

    基于spring boot 订单调用用户服务实例

    这些接口遵循HTTP协议,使用GET、POST、PUT、DELETE等方法,返回JSON格式的数据。订单服务通过发送HTTP请求来调用这些接口。 2. **Spring Web**:Spring Boot的web模块提供了创建RESTful服务的能力。我们可以在控制...

    spring rest mvc使用RestTemplate调用

    - **PUT和DELETE请求**:同理,使用`put()`和`delete()`方法。 3. **处理响应** `RestTemplate`返回的`ResponseEntity`对象包含HTTP响应的状态码、头信息和实体内容。可以使用`getStatusCode()`、`getHeaders()`...

    使用Spring构建Restful的Web服务.pdf

    - **统一接口**:REST API采用一套统一的操作集合来与资源进行交互,主要包括GET、POST、PUT、DELETE等HTTP方法。 - **C/S架构**:RESTful服务通常基于客户端/服务器架构,客户端发起请求,服务器提供服务。 - **无...

    2_构建一个简单的spring-boot的RESTful Web Service项目.zip

    项目中提供的`rest-service`可能是实现更复杂REST接口的代码示例,可能包含了处理其他HTTP方法(如POST、PUT、DELETE)、处理参数、异常处理、JSON数据绑定等内容。`1.1.png`和`1613193252.png`可能是教程中用来辅助...

    spring-data-rest-angular例子

    6. **RESTful API设计**: Spring Data REST遵循REST原则,如使用HTTP方法(GET、POST、PUT、DELETE)对应资源的操作,使用URI表示资源,并通过HTTP状态码传递响应状态。在项目中,可以自定义HATEOAS(超媒体作为应用...

    jersey+spring rest webservice web maven

    RESTful服务通常通过HTTP方法(GET、POST、PUT、DELETE等)暴露其功能,并返回JSON或XML格式的数据。 4. **Maven**: Maven是Java项目管理工具,用于构建、管理和部署项目。它通过POM(Project Object Model)文件来...

Global site tag (gtag.js) - Google Analytics