Rest风格介绍

REST风格

是什么

综合上面的解释,我们总结一下什么是RESTful架构:
1)每一个URI代表一种资源;

2)客户端和服务器之间,传递这种资源的某种表现层;

3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

增-POST

method=RequestMethod.POST

删-DELETE

method=RequestMethod.DELETE

改-PUT

method=RequestMethod.PUT

查-GET

method=RequestMethod.GET

Restful适配

web.xml里配置过滤器HiddenHttpMethodFilter

<!-- 配置org.springframework.web.filter.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> 

method的隐藏域

Delete

<form action="${pageContext.request.contextPath}/order/38" method="post">
 <input type="hidden" name="_method" value="DELETE">
 <input type="submit" value="Delete_commit">
</form>

Put

Update:<br>
<form action="${pageContext.request.contextPath}/order/38" method="post">
 <input type="hidden" name="_method" value="PUT">
 <input type="submit" value="Update_commit">
</form>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<fieldset>
REST风格:<br>
	POST:<br>
	<form action="${pageContext.request.contextPath}/order" method="post">
		<input type="submit" value="post_commit">
	</form>
	DELETE:<br>
	<form action="${pageContext.request.contextPath}/order/1022" method="post">
		<input type="hidden" name="_method" value="DELETE">
		<input type="submit" value="delete_commit">
	</form>	
	PUT:<br>
	<form action="${pageContext.request.contextPath}/order/1022" method="post">
		<input type="hidden" name="_method" value="PUT">
		<input type="submit" value="put_commit">
	</form><br>
	GET:<a href="${pageContext.request.contextPath}/order/1022">testGet</a>
</fieldset>

</html>
package com.learn.springmvc.test;

import java.io.IOException;
import java.io.Writer;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.learn.springmvc.entities.User;


@Controller
//@SessionAttributes(value="user")
public class Test001
{

	
	@RequestMapping(value="/order",method=RequestMethod.POST)
	public String testPost()
	{
		System.out.println("-----testPost");
		return "ok";
	}
	@RequestMapping(value="/order/{uuid}",method=RequestMethod.DELETE)
	public String testDelete(@PathVariable("uuid") String uuid)
	{
		System.out.println("-----testDelete uuid: "+uuid);
		return "ok";
	}
	@RequestMapping(value="/order/{uuid}",method=RequestMethod.PUT)
	public String testPut(@PathVariable("uuid") String uuid)
	{
		System.out.println("-----testPut uuid: "+uuid);
		return "ok";
	}	
	@RequestMapping(value="/order/{uuid}",method=RequestMethod.GET)
	public String testGet(@PathVariable("uuid") String uuid)
	{
		System.out.println("-----testGet uuid: "+uuid);
		return "ok";
	}		
	
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值