一.请求:
1.代码总览
package com.itheima.controller;
import com.itheima.pojo.User;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Array;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
@RestController
public class RequestController {
// 1.通过servlet接收, 了解即可
@RequestMapping("/simple01")
public String simple(HttpServletRequest request)
{
// 获取请求参数
String name = request.getParameter("name");
return "simple: " + name;
}
// 2.简单参数
@RequestMapping("/simple")
public String simpleParam(String name, Integer age)
{
System.out.println( name +":"+ age);
return "OK";
}
// 3.对象参数(需要先定义对象)
@RequestMapping("/simplePojo")
public String simplePojo(User user)
{
System.out.println(user);
return "OK";
}
// 4.数组参数
@RequestMapping("/arrayParam")
public String arrayParam(String[] hobby)
{
System.out.println(Arrays.toString(hobby));
return "OK";
}
// 5.集合参数(需要导入List包)
@RequestMapping("/listParam")
public String lstParam(@RequestParam List<String> hobby)
{
System.out.println(hobby);
return "OK";
}
// 6.时间参数
@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime)
{
System.out.println(updateTime);
return "ok";
}
// 7.json参数
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user)
{
System.out.println(user);
return "ok";
}
@RequestMapping("/pathParam/{id}")
public String pathParam(@PathVariable Integer id)
{
System.out.println(id);
return "OK";
}
}
2.详情
-
- 简单参数接收
URL: localhost:8080/simple?name=张三&age=333
- 简单参数接收
-
2.简单实体参数接收(将参数封装到实体类中)
2.1 创建接收对象 com/itheima/pojo/User.java, 使用 alt+insert快速添加getter,setter和toString
- 3.T5-04 数组集合参数
package com.itheima.pojo;
public class User {
private String name;
private Integer age;
private Address address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
", address=" + address +
'}';
}
}
package com.itheima.pojo;
public class Address {
private String province;
private String city;
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
@Override
public String toString() {
return "Address{" +
"province='" + province + '\'' +
", city='" + city + '\'' +
'}';
}
}
T5.06 路径参数 localhost:8080/pathParam/10086
二.响应:
创建这两个类, 一个是控制器, 一个是封装响应请求
代码
package com.itheima.pojo;
/**
* 统一响应结果封装类
*/
public class Result {
private Integer code; // 1.成功. 0.失败
private String msg; // 提示信息
private Object data; //数据
public Result()
{
}
public Result(Integer code, String msg, Object data)
{
this.code = code;
this.msg = msg;
this.data = data;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
// 静态方法, 方便调用
public static Result success(Object data)
{
return new Result(1, "success", data);
}
public static Result success()
{
return new Result(1, "success", null);
}
public static Result error(String msg)
{
return new Result(0, msg, null);
}
}
package com.itheima.controller;
import com.itheima.pojo.Address;
import com.itheima.pojo.Result;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController
public class ResponseController {
/*
// 响应字符串
@RequestMapping
public String hello()
{
return "hello";
}
// 响应json
@RequestMapping("/getAddr")
public Address getAddr()
{
Address addr = new Address();
addr.setProvince("河南");
addr.setCity("驻马店");
return addr;
}
// 响应集合
@RequestMapping("/listAddr")
public List<Address> listAddr()
{
List<Address> list = new ArrayList<>();
Address addr = new Address();
addr.setProvince("河南");
addr.setCity("驻马店");
list.add(addr);
return list;
}
*/
// 响应字符串
@RequestMapping
public Result hello()
{
return Result.success("hello");
}
// 响应json
@RequestMapping("/getAddr")
public Result getAddr()
{
Address addr = new Address();
addr.setProvince("河南");
addr.setCity("郑州");
return Result.success(addr);
}
// 响应集合
@RequestMapping("/listAddr")
public List<Address> listAddr()
{
List<Address> list = new ArrayList<>();
Address addr = new Address();
addr.setProvince("河南");
addr.setCity("驻马店");
list.add(addr);
return list;
}
}