restful 设计

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、restful是什么?

restful 资源的表现层状态转化
任何事物,只要有被引用到的必要,它就是一个资源。资源可以是实体,也可以只是一个抽象概念 。

表现层状态转化就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四 种基本操作。客户端通过HTTP方法可以获取资源的表述(包括数据和描述数据的元数据),如客户端通过 Accept头请求一种特定格式的表述,服务端则通过Content-Type告诉客户端资源的表述形式。

看Url就知道要什么;看http method就知道干什么;看http status code就知道结果如何

静态资源管理 webjars

WebJars是将web前端资源(js,css等)打成jar包文件,然后借助Maven工具,以jar包形式对web 前端资源进行统一依赖管理,保证这些Web资源版本唯一性。WebJars的jar包部署在maven中央仓库 上。

使用方式
引入依赖 - > 直接访问
<linkrel='stylesheet’href=‘webjars/bootstrap/3.3.6/css/bootstrap.min.css’>
<scripttype='text/javascript’src=‘webjars/bootstrap/3.3.6/js/bootstrap.min.js’>
官网

二、使用步骤

@RequestMapping(“/guest”)
*放在类上面,代表类里面的方法是以此开头的
在这里插入图片描述
设置后用户发送/guest请求 就会根据请求的方式get、post、put、delete
来找到对应的方法并执行
@PostMapping
@GetMapping
@PutMapping
@DeleteMapping(“/{name}”)

@GetMapping(“/toUpdate/{name}”)
public String toUpdate(Model model,@PathVariable(“name”) String name)
将/guest/toUpdate/{name}格式的url映射到此方法
其中的name属性值 通过注解 @PathVariable(“name”)映射到方法的属性中
其中的“name” 代表去url中查找的属性值
直译的意思就是 从路径中获取name的值

修改功能是put
因为form表单只支持get和post
可以通过隐藏值的方法实现发送delete和put请求
以下是设置隐藏值方式

 <input type="hidden" name="_method" value="put">

下面通过隐藏值方式把form表单修改为put请求 在发送请求的时候会改成put请求

form th:action="@{/guest}" th:object="${guest}" method="post" class="form-horizontal">
    <input type="hidden" name="_method" value="put">
</form>

/guest/toUpdate/{name}路径的属性接收和以往不同。
通过注解 @PathVariable(“name”)映射到方法的属性中,直译的意思就是 从路径中获取name的值

    @GetMapping("/toUpdate/{name}")
    public String toUpdate(Model model,@PathVariable("name") String name){
        Guest guest = guestService.get(name);
        model.addAttribute("guest",guest);
        return "update";
    }

删除功能是delete 需要通过delete操作请求
1.引入jquery的jar

<dependency>
        <groupId>org.webjars</groupId>
        <artifactId>jquery</artifactId>
        <version>3.4.1</version>
 </dependency>

2.script使用的时候引入jquery

<script type="text/javascript" th:src="@{/webjars/jquery/3.4.1/jquery.js}"></script>

删除按钮
th:attr=“del_url=@{/guest/}+${guest.name}” 设置了一个del_url的属性

<button th:attr="del_url=@{/guest/}+${guest.name}" name="del_button">删除</button>
删除按钮借助的表单
可以通过隐藏属性值input的一行,实现put以及delete的提交方式。
<form method="post" id="del_form">
    <input type="hidden" name="_method" value="delete">
</form>

通过js给按钮绑定点击事件 点击按钮会将给form表单设置action请求值并且提交发送请求
attr();获取节点属性名的值,相当于getAttribute(key)方法
prop(“action”,$(this).attr(“del_url”)) 设置action属性值设置为attr()取出的值

    $(function () {
        $("button[name='del_button']").click(function () {
            $("#del_form").prop("action",$(this).attr("del_url")).submit();
        });
    });

以上结果为发送了一个/guest/value(点击值) 请求

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值