Restful风格的参数获取

RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。

RESTFUL特点包括:

1、每一个URI代表1种资源;

2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;

3、通过操作资源的表现形式来操作资源;

4、资源的表现形式是XML或者HTML;

5、客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。

查询操作getUserById?id=1user/1-->get请求方式
保存操作saveUseruser-->post请求方式
删除操作deleteUser?id=1user/1-->delete请求方式
更新操作updateUseruser-->put请求方式

常见的操作就不说了,下面分享一个今天写代码碰到的问题以及解决方法:

需求是实现一个登录功能,我的想法是从前端获取用户名和密码,然后在数据库中查询看是否有这样的用户,如果有则可以登陆,没有就是用户名或密码错误。

在前端传递参数时,默认使用的form表单,但是表单的提交方式默认是post,这就导致在restful风格中和插入(保存操作)撞了。

然后我就想把提交方式改为get,但是这样就无法通过之前的url拼接获取前端传递的username和password参数。

经过数次的试错,最终的解决方法为

<form th:action="@{/user(username=${username},password=${password})}" method="get">
        账号:<input type="text" name="username"><br>
        密码:<input type="password" name="password"><br>
        <input type="reset" value="重置">|<input type="submit" value="登录"><br>
        没有账号?<a th:href="@{/register}">注册</a>一个
    </form>

将url拼接改为/user(username=${username},password=${password}),同时提交方式为get

后端Controller层

@RequestMapping(value = "/user", method = RequestMethod.GET)
    public String loginUser(String username, String password, Model model) {

        User user1 = userService.userLogin(username, password);
        System.out.println(user1);
        if (user1 != null) {
            model.addAttribute("user",user1);
            return "success";
        } else {
            return "error";
        }
    }

在参数前面不要添加@PathVariable注解!!!一旦添加就无法正常获取参数。

一起学习,共同进步!

欲买桂花同载酒,终不似,少年游。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YuuuZh。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值