Springboot 6.Springboot 返回cookies信息的验证和post接口开发及常见错误解决

在介绍之前先将一个小插件;lombok  ,在prefrence里面点击plugins,然后搜索lombok,进行install就可以了

首先将pom文件里面的lombok引进来

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.14</version>
</dependency>
然后,创建一个bean文件,创建一个类,User.java
package com.course.bean;

import lombok.Data;

@Data   //注解,作用就是get set  toString等方法都不用写了
public class User {

    private String userName;
    private String password;
    private String name;
    private String age;
    private String sex;
}

在MyPostmethod里面添加一个方getUserList方法

package com.course.server;

import com.course.bean.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

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

@RestController
@Api(value = "/",description = "这是我全部的post请求")
@RequestMapping("v1")
public class MyPostMethod {

    //cookie变量用来装我们的cookies信息
    private  static Cookie cookie;

    //用户登陆成功获取到cookies,然后在访问其他接口获取到的列表
    @RequestMapping(value = "/login",method = RequestMethod.POST)
    @ApiOperation(value = "登陆接口,成功后获取cookies信息",httpMethod = "POST")
    public String login(HttpServletResponse response,
                        @RequestParam(value = "usenName",required = true) String userName,  //true代表一定要传
                        @RequestParam(value = "password",required = true) String password){

        if(userName.equals("zhangsan")&&password.equals("123456")){
            cookie = new Cookie("login","true");
            response.addCookie(cookie);
            return "恭喜你登陆成功!";
        }
        return "用户名或者密码错误!";
    }

    @RequestMapping(value = "/get/userList",method = RequestMethod.POST)
    @ApiOperation(value = "获取用户列表",httpMethod = "POST")
    public String getUserList(HttpServletRequest request,     //没有HttpServletRequest request的话,cookies是带不进来的
                            @RequestBody User u){
        User user;
        //获取cookies
        Cookie[] cookies =request.getCookies();

        //验证cookies是否合法
        for(Cookie cookie:cookies){
            if(cookie.getName().equals("login")
                    &&cookie.getValue().equals("true")
                    && u.getUserName().equals("zhangsan")
                    && u.getPassword().equals("123456")){
                user = new User();
                user.setName("lisi");
                user.setAge("18");
                user.setSex("man");
                return user.toString();  //在lombok框架里面自动写了toString方法
            }
        }
        return "参数不合法";
    }
}

 然后,在jmeter里面,填入

查看结果:

 想看cookies信息的话,需要在~/apache-jmeter-4.0/bin/jmeter.properties  中找到 #CookieManager.save.cookies=false,将其改为CookieManager.save.cookies=true

posted @ 2018-09-25 17:12  裴敏儿  阅读(804)  评论(0编辑  收藏  举报