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

  • 相关阅读:
    通过HttpListener实现简单的Http服务
    WCF心跳判断服务端及客户端是否掉线并实现重连接
    NHibernate初学六之关联多对多关系
    NHibernate初学五之关联一对多关系
    EXTJS 4.2 资料 跨域的问题
    EXTJS 4.2 资料 控件之Grid 那些事
    EXTJS 3.0 资料 控件之 GridPanel属性与方法大全
    EXTJS 3.0 资料 控件之 Toolbar 两行的用法
    EXTJS 3.0 资料 控件之 combo 用法
    EXTJS 4.2 资料 控件之 Store 用法
  • 原文地址:https://www.cnblogs.com/peiminer/p/9700301.html
Copyright © 2011-2022 走看看