海阔天空

当前时间为:
欢迎大家来到海阔天空https://www.9713job.com,广告合作以及淘宝商家推广请微信联系15357240395

2020java框架教程之spring的RESTful

未分类
2020-12-13 14:10:01
1822677238@qq.com

手机扫码查看

2020java框架教程之spring的RESTful

2020java框架教程之spring的RESTful

REST

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

具体说,就是HTTP协议里面,四个表示操作方式的动词:

GET、POST、PUT、DELETE

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

GET 用来获取资源
POST 用来新建资源
PUT 用来更新资源
DELETE 用来删除资源

URL示例:

/target/1  HTTP GET: 得到 id=1 的order
/target/1  HTTP DELETE: 删除id=1的order
/target/1  HTTP PUT :更新id=1的order
/target/1  HTTP POST:新增order

HiddenHttpMethodFliter:浏览器form表单只支持 GET 和 POST 请求,不支持DELETE、PUT 请求,
spring添加一个过滤器,可以将这些请求转换为标准的 http方法,支持GET、POST、PUT和DELETE请求。

创建RESTful应用程序

1、配置过滤器

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

实现delete提交

jsp:

<a href="javascript:void(0)" onclick="deleteById()">删除</a>
<a href="javascript:void(0)" onclick="updateById()">修改</a>
<form action="1" method="post" id="deleteForm">
    <input type="text" name="_method" value="DELETE">
    <button>删除</button>
</form>
<form action="1" method="post" id="updateForm">
    <input type="text" name="_method" value="PUT">
    <button>修改</button>
</form>
<script>
    function deleteById(){
        document.getElementById('deleteForm').submit();
    }
    function updateById(){
        document.getElementById('updateForm').submit();
    }
</script>

controller:

@RequestMapping(value = "admin/list",method = RequestMethod.GET)
public String list(){
    return "admin/list";
}
@RequestMapping(value = "admin/{id}",method = RequestMethod.DELETE)
public String delete(){
    System.out.println("执行删除,已删除");
    return "redirect:/admin/list";
}
@RequestMapping(value = "admin/{id}",method = RequestMethod.PUT)
public String update(){
    System.out.println("执行修改,已修改");
    return "redirect:/admin/list";
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注