序列化和反序列话
:::info
将集合转换为JSON数据 是:序列化(对象序列化(转换)为数据)
反序列化(将数据转换为对象) — IO流中的输入流就是反序列化,将数据转换为对象输入到内存中
:::
前端代码
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body><a href="addBrand.html"><input type="button" value="新增"></a><br><hr><table id="brandTable" border="1" cellspacing="0" width="100%"><tr><th>序号</th><th>品牌名称</th><th>企业名称</th><th>排序</th><th>品牌介绍</th><th>状态</th><th>操作</th></tr><tr align="center"><td>1</td><td>三只松鼠</td><td>三只松鼠</td><td>100</td><td>三只松鼠,好吃不上火</td><td>启用</td><td><a href="#">修改</a> <a href="#">删除</a></td></tr><tr align="center"><td>2</td><td>优衣库</td><td>优衣库</td><td>10</td><td>优衣库,服适人生</td><td>禁用</td><td><a href="#">修改</a> <a href="#">删除</a></td></tr><tr align="center"><td>3</td><td>小米</td><td>小米科技有限公司</td><td>1000</td><td>为发烧而生</td><td>启用</td><td><a href="#">修改</a> <a href="#">删除</a></td></tr></table><script src="js/axios-0.18.0.js"></script><script>// 1. 当页面加载完成后,发送ajax请求window.onload = function () {// 2. 发送ajax请求axios({method:"get",url:"http://localhost:8080/brand-demo2/selectAllServlet"}).then(function (resp) {// 获取数据 获取的是json类型的集合数据let brands = resp.data;let tableData = "<tr>\n" +" <th>序号</th>\n" +" <th>品牌名称</th>\n" +" <th>企业名称</th>\n" +" <th>排序</th>\n" +" <th>品牌介绍</th>\n" +" <th>状态</th>\n" +" <th>操作</th>\n" +" </tr>";// 遍历该集合for (let i = 0; i < brands.length; i++) {let brand = brands[i];tableData = "<tr align=\"center\">\n" +" <td>"+ (i + 1) +"</td>\n" +" <td>"+brand.brandName+"</td>\n" +" <td>"+brand.companyName+"</td>\n" +" <td>"+brand.ordered+"</td>\n" +" <td>"+brand.description+"</td>\n" +" <td>"+brand.status+"</td>\n" +"\n" +" <td><a href=\"#\">修改</a> <a href=\"#\">删除</a></td>\n" +" </tr>"}// 设置表格数据document.getElementById("brandTable").innerHTML = tableData;})}</script></body></html>
后端代码
package com.itheima.web;import com.alibaba.fastjson.JSON;import com.itheima.pojo.Brand;import com.itheima.service.BrandService;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.annotation.*;import java.io.IOException;import java.util.List;@WebServlet("/selectAllServlet")public class SelectAllServlet extends HttpServlet {private BrandService brandService = new BrandService();@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 1. 调用Service查询List<Brand> brands = brandService.selectAll();// 2. 将集合转换为JSON数据(JSON数据都是字符串类型) 序列化(对象序列化为数据) 反序列化(将数据转换为对象)String jsonString = JSON.toJSONString(brands);// 3. 响应数据response.setContentType("text/json;charset=utf-8");response.getWriter().write(jsonString);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}}
