前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >fastjson +ajax 使用教程

fastjson +ajax 使用教程

原创
作者头像
ruochen
修改2022-03-08 10:25:27
3K0
修改2022-03-08 10:25:27
举报
文章被收录于专栏:若尘的技术专栏

JSON数据和Java对象转换

  • 导入坐标 ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency> ```
  • Java对象转JSON ```java String jsonStr = JSON.toJSONString(obj); ```
  • JSON字符串转Java对象 ```java User user = JSON.parseObject(jsonStr, User.class); ```

ajax 实现查询所有

  • brand.html ```html <!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%"> </table>
代码语言:txt
复制
        <script src="js/axios-0.18.0.js"></script>
代码语言:txt
复制
        <script>
代码语言:txt
复制
            // 1. 当页面加载完成后,发送ajax请求
代码语言:txt
复制
            window.onload = function () {
代码语言:txt
复制
                // 2. 发送ajax请求
代码语言:txt
复制
                axios({
代码语言:txt
复制
                    method: "get",
代码语言:txt
复制
                    url: "http://localhost:8080/brand-demo/ajaxSelectAllServlet"
代码语言:txt
复制
                }).then(function (resp) {
代码语言:txt
复制
                    // 获取数据
代码语言:txt
复制
                    let brands = resp.data;
代码语言:txt
复制
                    let tableData = "<tr>\n" +
代码语言:txt
复制
                        "                <th>序号</th>\n" +
代码语言:txt
复制
                        "                <th>品牌名称</th>\n" +
代码语言:txt
复制
                        "                <th>企业名称</th>\n" +
代码语言:txt
复制
                        "                <th>排序</th>\n" +
代码语言:txt
复制
                        "                <th>品牌介绍</th>\n" +
代码语言:txt
复制
                        "                <th>状态</th>\n" +
代码语言:txt
复制
                        "                <th>操作</th>\n" +
代码语言:txt
复制
                        "            </tr>";
代码语言:txt
复制
                    for (let i = 0; i < brands.length; i++) {
代码语言:txt
复制
                        let brand = brands[i];
代码语言:txt
复制
                        tableData += "<tr align=\"center\">\n" +
代码语言:txt
复制
                            "                <td>" + (i + 1) + "</td>\n" +
代码语言:txt
复制
                            "                <td>" + brand.brandName + "</td>\n" +
代码语言:txt
复制
                            "                <td>" + brand.companyName + "</td>\n" +
代码语言:txt
复制
                            "                <td>" + brand.ordered + "</td>\n" +
代码语言:txt
复制
                            "                <td>" + brand.description + "</td>\n";
代码语言:txt
复制
                        if (brand.status == 1) {
代码语言:txt
复制
                            tableData += "                <td>启用</td>\n";
代码语言:txt
复制
                        } else {
代码语言:txt
复制
                            tableData += "                <td>禁用</td>\n";
代码语言:txt
复制
                        }
代码语言:txt
复制
                        tableData += "                <td><a href=\"#\">修改</a> <a href=\"#\">删除</a></td>\n" +
代码语言:txt
复制
                            "            </tr>"
代码语言:txt
复制
                    }
代码语言:txt
复制
                    // 设置表格数据
代码语言:txt
复制
                    document.getElementById("brandTable").innerHTML = tableData;
代码语言:txt
复制
                })
代码语言:txt
复制
            }
代码语言:txt
复制
        </script>
代码语言:txt
复制
    </body>
代码语言:txt
复制
</html>
代码语言:txt
复制
```
  • AjaxSelectAllServlet ```java package com.ruochen.web;
代码语言:txt
复制
import com.alibaba.fastjson.JSON;
代码语言:txt
复制
import com.ruochen.pojo.Brand;
代码语言:txt
复制
import com.ruochen.service.BrandService;
代码语言:txt
复制
import javax.servlet.*;
代码语言:txt
复制
import javax.servlet.http.*;
代码语言:txt
复制
import javax.servlet.annotation.*;
代码语言:txt
复制
import java.io.IOException;
代码语言:txt
复制
import java.util.List;
代码语言:txt
复制
@WebServlet("/ajaxSelectAllServlet")
代码语言:txt
复制
public class AjaxSelectAllServlet extends HttpServlet {
代码语言:txt
复制
    private BrandService brandService = new BrandService();
代码语言:txt
复制
    @Override
代码语言:txt
复制
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
代码语言:txt
复制
        // 1. 调用 Service 查询
代码语言:txt
复制
        List<Brand> brands = brandService.selectAll();
代码语言:txt
复制
        // 2. 将集合转换为 JSON 数据 (对象序列化)
代码语言:txt
复制
        String jsonString = JSON.toJSONString(brands);
代码语言:txt
复制
        // 3. 响应数据
代码语言:txt
复制
        response.setContentType("text/json;charset=utf-8");
代码语言:txt
复制
        response.getWriter().write(jsonString);
代码语言:txt
复制
    }
代码语言:txt
复制
    @Override
代码语言:txt
复制
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
代码语言:txt
复制
        this.doGet(request, response);
代码语言:txt
复制
    }
代码语言:txt
复制
}
代码语言:txt
复制
```

ajax 实现添加

  • addBrand.html ```html <!DOCTYPE html> <html lang="en">
代码语言:txt
复制
    <head>
代码语言:txt
复制
        <meta charset="UTF-8">
代码语言:txt
复制
        <title>添加品牌</title>
代码语言:txt
复制
    </head>
代码语言:txt
复制
    <body>
代码语言:txt
复制
        <h3>添加品牌</h3>
代码语言:txt
复制
        <form action="" method="post">
代码语言:txt
复制
            品牌名称:<input id="brandName" name="brandName"><br>
代码语言:txt
复制
            企业名称:<input id="companyName" name="companyName"><br>
代码语言:txt
复制
            排序:<input id="ordered" name="ordered"><br>
代码语言:txt
复制
            描述信息:<textarea rows="5" cols="20" id="description" name="description"></textarea><br>
代码语言:txt
复制
            状态:
代码语言:txt
复制
            <input type="radio" name="status" value="0">禁用
代码语言:txt
复制
            <input type="radio" name="status" value="1">启用<br>
代码语言:txt
复制
            <input type="button" id="btn" value="提交">
代码语言:txt
复制
        </form>
代码语言:txt
复制
        <script src="js/axios-0.18.0.js"></script>
代码语言:txt
复制
        <script>
代码语言:txt
复制
            // 1. 给按钮绑定单击事件
代码语言:txt
复制
            document.getElementById("btn").onclick = function () {
代码语言:txt
复制
                // 将表单数据转为 json
代码语言:txt
复制
                var formData = {
代码语言:txt
复制
                    brandName: "",
代码语言:txt
复制
                    companyName: "",
代码语言:txt
复制
                    ordered: "",
代码语言:txt
复制
                    description: "",
代码语言:txt
复制
                    status: ""
代码语言:txt
复制
                };
代码语言:txt
复制
                // 获取表单数据
代码语言:txt
复制
                let brandName = document.getElementById("brandName").value;
代码语言:txt
复制
                // 设置数据
代码语言:txt
复制
                formData.brandName = brandName;
代码语言:txt
复制
                // 获取表单数据
代码语言:txt
复制
                let companyName = document.getElementById("companyName").value;
代码语言:txt
复制
                // 设置数据
代码语言:txt
复制
                formData.companyName = companyName;
代码语言:txt
复制
                // 获取表单数据
代码语言:txt
复制
                let ordered = document.getElementById("ordered").value;
代码语言:txt
复制
                // 设置数据
代码语言:txt
复制
                formData.ordered = ordered;
代码语言:txt
复制
                // 获取表单数据
代码语言:txt
复制
                let description = document.getElementById("description").value;
代码语言:txt
复制
                // 设置数据
代码语言:txt
复制
                formData.description = description;
代码语言:txt
复制
                let status = document.getElementsByName("status");
代码语言:txt
复制
                for (let st of status) {
代码语言:txt
复制
                    if (st.checked) {
代码语言:txt
复制
                        formData.status = st.value;
代码语言:txt
复制
                    }
代码语言:txt
复制
                }
代码语言:txt
复制
                console.log(formData);
代码语言:txt
复制
                // 2. 发送 ajax 请求
代码语言:txt
复制
                axios({
代码语言:txt
复制
                    method: "post",
代码语言:txt
复制
                    url: "http://localhost:8080/brand-demo/ajaxAddServlet",
代码语言:txt
复制
                    data: formData
代码语言:txt
复制
                }).then(function (resp) {
代码语言:txt
复制
                    // 判断响应数据是否为 success
代码语言:txt
复制
                    if (resp.data == "success") {
代码语言:txt
复制
                        location.href = "http://localhost:8080/brand-demo/brand.html"
代码语言:txt
复制
                    }
代码语言:txt
复制
                })
代码语言:txt
复制
            }
代码语言:txt
复制
        </script>
代码语言:txt
复制
    </body>
代码语言:txt
复制
</html>
代码语言:txt
复制
```
  • AjaxAddServlet ```java package com.ruochen.web;
代码语言:txt
复制
import com.alibaba.fastjson.JSON;
代码语言:txt
复制
import com.ruochen.pojo.Brand;
代码语言:txt
复制
import com.ruochen.service.BrandService;
代码语言:txt
复制
import javax.servlet.*;
代码语言:txt
复制
import javax.servlet.http.*;
代码语言:txt
复制
import javax.servlet.annotation.*;
代码语言:txt
复制
import java.io.BufferedReader;
代码语言:txt
复制
import java.io.IOException;
代码语言:txt
复制
@WebServlet("/ajaxAddServlet")
代码语言:txt
复制
public class AjaxAddServlet extends HttpServlet {
代码语言:txt
复制
    private BrandService brandService = new BrandService();
代码语言:txt
复制
    @Override
代码语言:txt
复制
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
代码语言:txt
复制
        // 1. 接收数据
代码语言:txt
复制
        // 获取请求体数据
代码语言:txt
复制
        BufferedReader br = request.getReader();
代码语言:txt
复制
        String params = br.readLine();
代码语言:txt
复制
        // 将 JSON 字符串转为 Java 对象
代码语言:txt
复制
        Brand brand = JSON.parseObject(params, Brand.class);
代码语言:txt
复制
        System.out.println(brand);
代码语言:txt
复制
        // 2. 调用 service 添加
代码语言:txt
复制
        brandService.add(brand);
代码语言:txt
复制
        // 3. 响应成功标识
代码语言:txt
复制
        response.getWriter().write("success");
代码语言:txt
复制
    }
代码语言:txt
复制
    @Override
代码语言:txt
复制
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
代码语言:txt
复制
        this.doGet(request, response);
代码语言:txt
复制
    }
代码语言:txt
复制
}
代码语言:txt
复制
```

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JSON数据和Java对象转换
  • ajax 实现查询所有
  • ajax 实现添加
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档