您的位置:首页 > 娱乐 > 八卦 > javaweb_05:请求响应——请求

javaweb_05:请求响应——请求

2024/10/6 10:26:08 来源:https://blog.csdn.net/qq_52200849/article/details/141064257  浏览:    关键词:javaweb_05:请求响应——请求

什么是请求响应:

  • 请求:获取请求数据
  • 响应:设置相应数据
  • BS框架:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存在服务端。
  • CS架构:Client/Server.客户端/服务器架构模式。(要下载客户端)

一、Postman

1、下载
Postman是一款功能强大的网页调试与发送页面的HTTP请求的Chrome插件,常用于接口调试。
链接:https://pan.baidu.com/s/1S8oiRrH_egjo80KCBS5IAA?pwd=yc7f
提取码:yc7f
下载完成后,直接双击安装。安装完成后的页面如下:(完成后自己注册登录)
在这里插入图片描述
2、使用
运行在javaweb_04中写的springboot的SpringbootApplication中的代码
在这里插入图片描述
在Postman中创建工作空间:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
请求完成后,可以点击save保存该页面。
在这里插入图片描述
保存好之后,界面如下:
在这里插入图片描述

二、简单参数

在请求服务端时,传递的是一些普通的请求数据。

1、原始方式请求参数

在原始的web程序中,获取请求参数,需要通过HttpServletRequest对象手动获取。
创建了一个新模块,并且写了一个新的controller函数去传递消息
在这里插入图片描述
在这里插入图片描述

新建类,并在该类类中书写代码,完成后运行该项目的启动类:
在这里插入图片描述

package org.example.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;@RestController
public class RequestController {//原始方式@RequestMapping("/simpleParam")public String simpleParam(HttpServletRequest request){//通过request获取请求参数String name = request.getParameter("name");String strAge = request.getParameter("age");int age = Integer.parseInt(strAge);System.out.println(name + ":" +age);return "ok";}
}

运行起来后在postman中做测试:
在这里插入图片描述

2、pringboot中接受简单参数

注意请求的参数名与代码中的形参名一定保持一致就可以成功
简单参数:参数名与形参变量名相同,定义形参即可接收参数。

package org.example.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;@RestController
public class RequestController {//原始方式
//    @RequestMapping("/simpleParam")
//    public String simpleParam(HttpServletRequest request){
//        //通过request获取请求参数
//        String name = request.getParameter("name");
//        String strAge = request.getParameter("age");
//        int age = Integer.parseInt(strAge);
//        System.out.println(name + ":" +age);
//        return "ok";
//    }@RequestMapping("/simpleParam")public String simpleParam(String name,Integer age){System.out.println(name + ":" +age);return "okkkkkkk~";}
}

运行结果:
在这里插入图片描述
使用Post发送请求(代码不变):
在这里插入图片描述

三、实体参数

1、简单实体对象

请求参数名与形参对象属性名相同(封装成功的要点)。定义POJO接收即可(将参数封装在实体对象中)
在这里插入图片描述
①准备一个user类去封装输出的参数
在这里插入图片描述

package org.example.pojo;//实体类
public class User {private String name;private Integer age;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +'}';}
}

②在requestController中定义方法去使用user:

package org.example.controller;import org.example.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;@RestController
public class RequestController {//原始方式
//    @RequestMapping("/simpleParam")
//    public String simpleParam(HttpServletRequest request){
//        //通过request获取请求参数
//        String name = request.getParameter("name");
//        String strAge = request.getParameter("age");
//        int age = Integer.parseInt(strAge);
//        System.out.println(name + ":" +age);
//        return "ok";
//    }@RequestMapping("/simpleParam")public String simpleParam(String name,Integer age){System.out.println(name + ":" +age);return "okkkkkkk~";}//2、实体参数@RequestMapping("/simplePojo")public String simplePojo(User user){System.out.println(user);return "successful";}
}

③启动当前服务,在postman中查看
在这里插入图片描述
在这里插入图片描述

2、复杂实体对象

请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数
在这里插入图片描述

四、数组集合参数

在表单中有复选框,可以勾选多个值,要将多个值提交,就得使用数组集合参数。

1、数组参数

请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数。
在这里插入图片描述

    //数组集合参数@RequestMapping("/arrayParam")public String arrayParam(String []hobby){System.out.println(Arrays.toString(hobby));return "successful";}

运行,在postman中send之后:
在这里插入图片描述

在这里插入图片描述

2、集合参数

在这里插入图片描述
在这里插入图片描述

五、日期时间参数

使用@DataTimeFormat注解完成日期参数格式转换

//日期时间参数@RequestMapping("/dataParam")public String dataParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updataTime){System.out.println(updataTime);return "成功发送时间";}

在这里插入图片描述
在这里插入图片描述

六、Json参数(Post)

json数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用@RequestBody标识
在这里插入图片描述

在这里插入图片描述

//json参数@RequestMapping("/jsonParam")public String jsonParam(@RequestBody User user){System.out.println(user);return "json参数发送成功";}

User类:

package org.example.pojo;//实体类
public class User {private String name;private Integer age;private Address address;public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +", address=" + address +'}';}
}

Address类:

package org.example.pojo;public class Address {private String province;private String ctiy;@Overridepublic String toString() {return "Address{" +"province='" + province + '\'' +", ctiy='" + ctiy + '\'' +'}';}public String getProvince() {return province;}public void setProvince(String province) {this.province = province;}public String getCtiy() {return ctiy;}public void setCtiy(String ctiy) {this.ctiy = ctiy;}
}

七、路径参数

1、单个参数

通过请求URL直接传递参数,使用{...}来标识该路径参数,需要使用@PathVariable
获取路径参数(类似翻页)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//路径参数@RequestMapping("/path/{id}")public String pathParam(@PathVariable Integer id){System.out.println(id);return "发送成功";}

2、多个参数

在这里插入图片描述
在这里插入图片描述

//路径参数@RequestMapping("/path/{id}/{name}")public String pathsParam(@PathVariable Integer id,@PathVariable String name){System.out.println(id + ":" + name);return "多个参数发送成功";}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com