JavaWeb中的请求响应——请求

简单参数

原始方式获取请求参数

定义

原始的web程序中,获取请求参数,需要通过HttpServletRequest 对象手动获取。

  1. Controller方法形参中声明HttpServletRequest对象
  2. 调用对象的getParameter(参数名)
    (注:不过原始的web程序需要进行手动类型转换,较为繁琐)

    代码

    @RequestMapping("/simpleParam"){
    String name = request.getParameter("name");
    String ageStr = request.getParameter("age");
    int age = Integer.parseInt(ageStr);
    System.out.println(name+"  :  "+age);
    return "OK";
    }

SpringBoot中接收简单参数

定义

请求参数名与形参变量名相同时,定义形参即可接收参数。
注:会自动进行类型转换

代码

@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name = "name") String username , Integer age){
    System.out.println(username + " : " + age);
    return "OK";
}

SpringBoot中@RequestParam注解

定义

如果方法形参名称与请求参数名称不匹配,可以使用 @RequestParam注解 完成映射。
(注:@RequestParam中的required属性默认为true,代表该前台请求参数必须传递,如果不传递将报错。 如果该参数是没传递,可以将required属性设置为false。)

代码

@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name = "name") String username , Integer age){
    System.out.println(username + " : " + age);
    return "OK";
}

实体参数

解决

若前端传递十几个参数,则用简单参数比较繁琐,不便于后期的维护。
所有的请求参数封装到一个实体类

定义

请求参数名与形参对象属性名相同,定义POJO接收即可。
其余则按照对象层次结构关系即可接收嵌套POJO属性参数。

代码

(右键->生成 或者快捷键ALT+INSERT生成get/set方法和toString方法)
(注:请求参数名与形参对应的属性名保持一致)
实体类对象

public class User {
    private String name;
    private Integer age;
    private Address address;
}
public class Address {
    private String province;
    private String city;
}

形参方法

//指定请求路径
@RequestMapping("/Pojo")
    public String simplePojo(User user){
    System.out.println(user);
    return "OK";
}

数组集合参数

定义

数组:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数
集合:请求参数名与形参集合名称相同且请求参数为多个,@RequestParam注解 绑定参数关系

代码

//数组参数
@RequestMapping("/arrayParam")
    public String arrayParam(String[] hobby){
    System.out.println(Arrays.toString(hobby));
    return "OK";
}
//集合参数
@RequestMapping("/listParam")
    public String listParam(@RequestParam List<String> hobby){
    System.out.println(hobby);
    return "OK";
}

日期参数

定义

使用 @DateTimeFormat 注解完成日期参数格式转换
日期格式:
updateTime=2022年12月12日 10时05分45秒
updateTime=2022/12/12 10:05:45

代码

@RequestMapping("/dateParam")
    public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
    System.out.println(updateTime);
    return "OK";
}

Json参数

定义

JSON数据键名(key)与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用 @RequestBody注解 标识
(注:要想发送请求,传递json格式的请求数据,要将请求方式设置为post方式。因为json格式的请求数据要放在请求中携带到服务端的。json格式的数据key值要加双引号

代码

实体对象如上所述

@RequestMapping("/jsonParam")
    public String jsonParam(@RequestBody User user){
    System.out.println(user);
    return "OK";
}

路径参数

定义

通过请求URL直接传递参数,使用{…}来标识该路径参数,需要使用@PathVariable 注解获取路径参数,路径参数的参数值id与方法形参名称id保持一致

代码

//单个请求参数
@RequestMapping("/path/{id}")
    public String pathParam(@PathVariable Integer id){
    System.out.println(id);
    return "OK";
}
//多个请求参数
@RequestMapping("/path/{id}/{name}")
    public String pathParam2(@PathVariable Integer id, @PathVariable String name){   System.out.println(id+ " : " +name);
     return "OK";
 }

概述&总结

请求响应的概念(请点击跳转)

来自上海
博客文章均为Ferryman.原创,转载请注明文章地址及作者
如有需要,可通过RSS订阅文章
有任何问题,可以在评论区留言哦~
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇