• javaweb使用gson工具使浏览器返回json数据


    1.什么是序列化和反序列化

    (1)Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程;

    (2)序列化:对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可传递性。序列化是把对象转换成有序字节流,以便在网络上传输或者保存在本地文件中。序列化后的字节流保存了Java对象的状态以及相关的描述信息。序列化机制的核心作用就是对象状态的保存与重建。

    (3)反序列化:客户端从文件中或网络上获得序列化后的对象字节流后,根据字节流中所保存的对象状态及描述信息,通过反序列化重建对象。

    (4)本质上讲,序列化就是把实体对象状态按照一定的格式写入到有序字节流,反序列化就是从有序字节流重建对象,恢复对象状态。

    2. 后台直接将数据库数据返回浏览器

    UserServlet
    //新建一个gson类对象
    Gson gson = new Gson();
    String json;
    String id = req.getParameter("id");
    //通过参数调用的对象值
    Book book = bookService.findBookById(Integer.parseInt(id));
    //新建一个存放Book对象的list集合
    List<Book> list = new ArrayList<>();
    //将对象保存到集合中
    list.add(book);
    //通过gson类对象的方法来转换list集合为json数据
    json = gson.toJson(list);
    //设置发送到客户端的响应的内容类型
    resp.setContentType("text/plain");
    //设置编码类型
    resp.setCharacterEncoding("gb2312");
    //字符输入流:PrintWirter getWriter()
    //字节输出流:ServletOutputStream getOutputStream()
    PrintWriter out = new PrintWriter(resp.getOutputStream());
    out.print(json);
    out.flush();//把内存中的数据刷写到硬盘
    

    3.展示

    4.后台将数据库数据添加数据返回浏览器

    UserServlet
     Integer bookid2 = Integer.parseInt(req.getParameter("id"));
     System.out.println("UserServlet中使用方法updateUserPhoto获取参数为:" + bookid2);
     Book book2 = bookService.findBookById(bookid2);
    //思路就是用map集合封装状态信息等,然后再将数据传入
     Map map = new HashMap();
     map.put("code", "0");
     map.put("msg", "");
     map.put("data", book2);
     json = gson.toJson(map);
     resp.setContentType("text/plain");
     resp.setCharacterEncoding("gb2312");
     PrintWriter out = new PrintWriter(resp.getOutputStream());
     out.print(json);
     out.flush();//把内存中的数据刷写到硬盘
    

    5.展示

    image-20201124135859056

  • 相关阅读:
    从头到尾测地理解KMP算法【转】
    【Android】使用BaseAdapter实现复杂的ListView【转】
    Git命令速查表【转】
    图解Git命令【转】
    Git-入门教程
    自定义Git【转】
    linux命令大全
    ppt转pdf网址
    【转】设置电脑眼睛保护色(背景色)
    【转】putty基本操作--不错
  • 原文地址:https://www.cnblogs.com/dongxuelove/p/14032423.html
Copyright © 2020-2023  润新知