内蒙古地区做推广网站,抖音是哪家公司开发的软件,网络营销常用工具,山东中讯网站建设在web的前后端分离开发过程中#xff0c;前端发送请求给后端#xff0c;后端接收请求#xff0c;响应数据给前端
请求
前端发送数据进行请求
简单参数
原始方式
在原始的web程序中#xff0c;获取请求参数#xff0c;需要通过HttpServletRequest 对象手动获取。
代码…在web的前后端分离开发过程中前端发送请求给后端后端接收请求响应数据给前端
请求
前端发送数据进行请求
简单参数
原始方式
在原始的web程序中获取请求参数需要通过HttpServletRequest 对象手动获取。
代码样例 //原始方式RequestMapping(/simpleParam)public String simpleParam(HttpServletRequest request){//获取请求参数String namerequest.getParameter(name);String ageStrrequest.getParameter(age);int ageInteger.parseInt(ageStr);System.out.println(name:age);return OK;}
前端测试发送的请求 SpringBoot方式
简单参数:参数名与形参变量名相同定义形参即可接收参数。 //方式1RequestMapping(/simpleParam)public String simpleParam(String name,Integer age ){System.out.println(name:age);return OK;} 简单参数: 如果方法形参名称与请求参数名称不匹配可以使用 RequestParam 完成映射。 //方式2RequestMapping(/simpleParam)//这里设置name不是必须传入参数public String simpleParam(RequestParam(namename ,required false) String username, Integer age ){System.out.println(username:age);return OK;} 注意RequestParam中的required属性默认为true代表该请求参数必须传递如果不传递将报错。如果该参数是可选的可以将required属性设置为false。
SpringBoot方式会自动进行类型转换如上面的age
实体参数
简单实体对象
请求参数名与形参对象属性名相同定义POJO接收即可 如果对象里面有另一个对象方式如下
两个对象如下
public class User {private String name;private Integer age;private Address address;
}
public class Address {private String province;private String city;
}
getset等其他方法已省略
接收方式还是不变如上 //2. 实体参数RequestMapping(/complexPojo)public String complexPojo(User user){System.out.println(user);return OK;}
发送请求样例如下 变化是多加了“点”进行访问
数组集合方式
数组参数
数组参数:请求参数名与形参数组名称相同且请求参数为多个定义数组类型形参即可接收参数 集合参数 集合参数:请求参数名与形参集合名称相同且请求参数为多个RequestParam 绑定参数关系 日期参数
日期参数:使用 DateTimeFormat注解完成日期参数格式转换 JSON参数 响应
后端响应数据给前端 注意转换为JSON格式
代码样例 //响应字符串RequestMapping(/hello)public String hello(){System.out.println(Hello World ~);return Hello World ~;}//响应对象RequestMapping(/getAddr)public Address getAddr(){Address addr new Address();addr.setProvince(广东);addr.setCity(深圳);return addr;}//响应集合RequestMapping(/listAddr)public ListAddress listAddr(){ListAddress list new ArrayList();Address addr new Address();addr.setProvince(广东);addr.setCity(深圳);Address addr2 new Address();addr2.setProvince(陕西);addr2.setCity(西安);list.add(addr);list.add(addr2);return list;}
运行后样例
响应字符串
{code: 1,msg: success,data: Hello World ~
}
响应对象
{code: 1,msg: success,data: {province: 广东,city: 深圳}
}
响应集合
{code: 1,msg: success,data: [{province: 广东,city: 深圳},{province: 陕西,city: 西安}]
}
统一响应结果
好处就是只要返回result一个结果提高代码复用性 代码样例
RequestMapping(/hello)public Result hello(){System.out.println(Hello World ~);//return new Result(1,success,Hello World ~);return Result.success(Hello World ~);}RequestMapping(/getAddr)public Result getAddr(){Address addr new Address();addr.setProvince(广东);addr.setCity(深圳);return Result.success(addr);}RequestMapping(/listAddr)public Result listAddr(){ListAddress list new ArrayList();Address addr new Address();addr.setProvince(广东);addr.setCity(深圳);Address addr2 new Address();addr2.setProvince(陕西);addr2.setCity(西安);list.add(addr);list.add(addr2);return Result.success(list);}
Result对象代码
package com.ithema.pojo;/*** 统一响应结果封装类*/
public class Result {private Integer code ;//1 成功 , 0 失败private String msg; //提示信息private Object data; //数据 datapublic 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);}Overridepublic String toString() {return Result{ code code , msg msg \ , data data };}
}