【学习笔记】使用springboot开发get方法接口-需要携带参数才能访问的get请求

本文记录了使用Spring Boot开发GET方法接口时如何携带参数进行访问的过程。通过修改MyGetMethod类并添加getList方法,详细阐述了URL中设置参数的方法。同时,介绍了在接口中处理cookies以及带参数和不带参数访问的不同情况。
  1. 继续修改MyGetMethod 类, 主要是添加了getList方法
package com.gracie.server;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

@RestController //告诉@ComponentScan , 我是需要被扫描的类
public class MyGetMethod {

    @RequestMapping(value="/getcookies", method = RequestMethod.GET) //配置访问方法和路径
    public String getCookies(HttpServletResponse response){
        //HttpServletRequest 装请求信息的类,从客户端带着信息来server
        //HttpServletResponse 装响应信息的类, 从server端带着信息回到客户端

        Cookie cookie=new Cookie("login", "true"); //设定cookie值
        response.addCookie(cookie);
        return "恭喜你获得cookies成功";
    }
    /*
    要求客户端携带cookies来访问
     */
    @RequestMapping(value="/get/with/cookies", method = RequestMethod.GET) //配置访问方法和路径
    public String getwithCookies(HttpServletRequest request){
        Cookie[] cookies=request.getCookies();
        /*HttpServletRequest里有一个方法叫request.getCookies,此方法可以返回cookie,注意cookie是键值对,所以是数组
        需要通过一个数组来存储它         */

        if (Objects.isNull(cookies)){
            return "判断结果:你需要携带cookies信息来"; //判断返回的数组cookies是不是为空
        }

        for (Cookie cookie: cookies){
            if (cookie.getName().equals("login") && cookie.getValue().equals("true")){
                return "恭喜你访问成功"; //对cookies信息做一个判断,如果判断ok,则表示cookies里的确是有信息
            }

        }

        return "你必须携带cookies信息来";

    }

    /*
    开发一个需要携带参数才能访问的get请求
    第一种实现方式: url: key=value&key=value
    我们来模拟获取商品列表
     */
    @RequestMapping(value="/get/with/param", method = RequestMethod.GET)
    public Map<String, Integer> getList(@RequestParam Integer start, @RequestParam Integer end){
        //商品列表返回的是一个Map, 有一个商品名称,有一个价格
        //@RequestParam,此注解设置开始位置和结束位置
        //真实项目中需要拿start和end到数据库中取值,此处模拟以下商品
        Map<String, Integer> myList=new HashMap<>(); //模拟商品
        myList.put("Shoes", 400);
        myList.put("T-shirt", 200);
        myList.put("Doll", 500);

        return myList;
    }

}

  1. 重新运行Application.main()方法, 查看结果:
    注意此处的重点是URL里的设置
    在这里插入图片描述
  2. 继续修改继续修改MyGetMethod 类, 修改代码如下:
package com.gracie.server;

import org.springframework.web.bind.annotation.*;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

@RestController //告诉@ComponentScan , 我是需要被扫描的类
public class MyGetMethod {

    @RequestMapping(value="/getcookies", method = RequestMethod.GET) //配置访问方法和路径
    public String getCookies(HttpServletResponse response){
        //HttpServletRequest 装请求信息的类,从客户端带着信息来server
        //HttpServletResponse 装响应信息的类, 从server端带着信息回到客户端

        Cookie cookie=new Cookie("login", "true"); //设定cookie值
        response.addCookie(cookie);
        return "恭喜你获得cookies成功";
    }
    /*
    要求客户端携带cookies来访问
     */
    @RequestMapping(value="/get/with/cookies", method = RequestMethod.GET) //配置访问方法和路径
    public String getwithCookies(HttpServletRequest request){
        Cookie[] cookies=request.getCookies();
        /*HttpServletRequest里有一个方法叫request.getCookies,此方法可以返回cookie,注意cookie是键值对,所以是数组
        需要通过一个数组来存储它         */

        if (Objects.isNull(cookies)){
            return "判断结果:你需要携带cookies信息来"; //判断返回的数组cookies是不是为空
        }

        for (Cookie cookie: cookies){
            if (cookie.getName().equals("login") && cookie.getValue().equals("true")){
                return "恭喜你访问成功"; //对cookies信息做一个判断,如果判断ok,则表示cookies里的确是有信息
            }

        }

        return "你必须携带cookies信息来";

    }

    /*
    开发一个需要携带参数才能访问的get请求
    第一种实现方式: url: key=value&key=value
    我们来模拟获取商品列表
     */
    @RequestMapping(value="/get/with/param", method = RequestMethod.GET)
    public Map<String, Integer> getList(@RequestParam Integer start, @RequestParam Integer end){
        //商品列表返回的是一个Map, 有一个商品名称,有一个价格
        //@RequestParam,此注解设置开始位置和结束位置
        //真实项目中需要拿start和end到数据库中取值,此处模拟以下商品
        Map<String, Integer> myList=new HashMap<>(); //模拟商品
        myList.put("Shoes", 400);
        myList.put("T-shirt", 200);
        myList.put("Doll", 500);

        return myList;
    }

    /**
     * 开发一个需要携带参数才能访问的get请求
     *  第二种实现方式: url: ip:port//get/with/param/10/20
     *   我们来模拟获取商品列表
     */

    @RequestMapping(value = "/get/with/param/{start}/{end}")
    public Map<String, Integer> myGetList(@PathVariable Integer start, @PathVariable Integer end){
        Map<String, Integer> myList=new HashMap<>(); //模拟商品
        myList.put("Shoes", 400);
        myList.put("T-shirt", 200);
        myList.put("Doll", 500);

        return myList;
    }


}

  1. 重新运行Application.main()方法, 查看结果:
    注意此处的重点是URL里的设置
    在这里插入图片描述

  2. 综合:使用Spring boot开发get方法结构: 带cookies,带参数, 修改代码如下

package com.gracie.server;

import org.springframework.web.bind.annotation.*;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

@RestController //告诉@ComponentScan , 我是需要被扫描的类
public class MyGetMethod2 {

    @RequestMapping(value="/getcookies", method = RequestMethod.GET) //配置访问方法和路径
    public String getCookies(HttpServletResponse response){
        //HttpServletRequest 装请求信息的类,从客户端带着信息来server
        //HttpServletResponse 装响应信息的类, 从server端带着信息回到客户端

        Cookie cookie=new Cookie("login", "true"); //设定cookie值
        response.addCookie(cookie);
        return "恭喜你获得cookies成功";
    }

    /*
    开发一个需要携带参数才能访问的get请求
    第一种实现方式: url: key=value&key=value
    我们来模拟获取商品列表
     */
    @RequestMapping(value="/get/with/param", method = RequestMethod.GET)
    public Map<String, Integer> getList(HttpServletRequest request, @RequestParam Integer start, @RequestParam Integer end){


        Cookie[] cookies=request.getCookies();
        /*HttpServletRequest里有一个方法叫request.getCookies,此方法可以返回cookie,注意cookie是键值对,所以是数组
        需要通过一个数组来存储它         */

        if (Objects.isNull(cookies)){
            System.out.println("判断结果:你需要携带cookies信息来"); ; //判断返回的数组cookies是不是为空
        }

        for (Cookie cookie: cookies){
            if (cookie.getName().equals("login") && cookie.getValue().equals("true")){
                System.out.println("恭喜你访问成功"); //对cookies信息做一个判断,如果判断ok,则表示cookies里的确是有信息
            }
        }
        //商品列表返回的是一个Map, 有一个商品名称,有一个价格
        //@RequestParam,此注解设置开始位置和结束位置
        //真实项目中需要拿start和end到数据库中取值,此处模拟以下商品
        Map<String, Integer> myList=new HashMap<>(); //模拟商品
        myList.put("Shoes", 400);
        myList.put("T-shirt", 200);
        myList.put("Doll", 500);

        return myList;
    }



}

  1. 重新运行Application.main()方法, 查看结果:
    从server端获得cookies:
    在这里插入图片描述

不带参数的访问:
在这里插入图片描述
带参数的访问:
在这里插入图片描述
查看控制台:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值