前提说明为了演示的一致性,将返回数据进行的统一,编写一个统一返回数据类,一般返回的数据包括code 状态码,是否成功 true ,false ,自定义信息,及最重要的data 数据,采用HashMap类型。
@Data //使用Data来代替 get set 方法 ,实际也是使用了 Java的反射机制
public class E {
private Boolean success;
private Integer code;
private String message;
private Map<String,Object> data = new HashMap<>();
private E(){}
//设置两个比较常用的 状态,并返回该对象,可以一直设置属性,(链式编程)
public static E ok(){
E r = new E();
r.setSuccess(true);
r.setCode(ResultCode.OK);
r.setMessage("成功");
return r;
}
//失败时 直接把属性设置好
public static E error(){
E r = new E();
r.setSuccess(false);
r.setCode(ResultCode.ERROR);
r.setMessage("失败");
return r;
}
public E success(Boolean success){
this.setSuccess(success);
return this;
}
public E message(String message){
this.setMessage(message);
return this;
}
public E code(Integer code){
this.setCode(code);
return this;
}
public E data(String key, Object value){
this.data.put(key, value);
return this;
}
public E data(Map<String, Object> map){
this.setData(map);
return this;
}
}
三种项目模式,都使用这个统一返回类型,作统一演示
servlet原生EE 项目中的controller没有像使用框架控制层一样可以是一个加注解的”方法“,类是没有返回值类型的,因此可以借助使用流写入到响应中。
fastjson 去将 E 转为json 格式。servlet项目基本没有用到maven项目 ,因此下载jar 然后add libary 中 附上 fastjson jar下载的地址
https://github.com/alibaba/fastjson
PrintWriter writer = response.getWriter();
String jsonString= JSON.toJSONString(E.ok());
writer.print(jsonString); //将要返回的数据,写入到 响应里。
writer.flush(); //将缓冲区刷新出去
writer.close(); //或者直接关闭
在每个请求方法上 加上@RequestBody 来,会将返回的 Java实体类自动转化为json 串格式
使用RestController 的项目中 请求返回的结果都自动转化为 json的字符串的形式。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。