zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    史上最强验证
    Yii2 return redirect()
    一次线上问题引发的思考
    一次前端体验优化
    RSA For PHP
    判断是否字符串是否是JSON
    过滤Xss
    Yii2 中日志的记录
    Yii2 中禁用csrf校验
    开始。
  • 原文地址:https://www.cnblogs.com/peiminer/p/9700301.html
Copyright © 2011-2022 走看看