ajax利用JSON的形式,从后端查询获取到数据展示到前段

后端代码

package Test;

import com.alibaba.fastjson.JSON;
import model.stu;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
@WebServlet("/ajax333")
public class ajax3 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        ArrayList<stu> stus = new ArrayList<stu>();
        stu stu1 = new stu();
        stu1.setId(6);
        stu1.setName("a");
        stu1.setAge(16);

        stu stu2 = new stu();
        stu2.setId(8);
        stu2.setName("b");
        stu2.setAge(18);

        stu stu3 = new stu();
        stu3.setId(10);
        stu3.setName("c");
        stu3.setAge(88);

        stus.add(stu1);
        stus.add(stu2);
        stus.add(stu3);

//        stu2集合不能直接前端,字符stu
//        集合转换为jesion "字符串” jdk工具序列化
//javabean转换为jsen
        String res = JSON.toJSONString(stus);
        System.out.println("后端JSON格式的字符串= " + res);
//        传回前端是健和值的形式
//        后端以JSON的形式返回前端
        resp.setContentType("application/json");
        resp.setCharacterEncoding("utf-8");
//        响应用户请求时,告知用户的请求编码
        PrintWriter writer = resp.getWriter();
        writer.write(res);
//        释放缓存和对象
        writer.flush();
        writer.close();
    }
}

前端代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>json前后端结合测试代码</title>
    <script>
        function ajax4()//函数google
        {
            //  创建ajax对象
            let xmlHttpRequest = new XMLHttpRequest();
            //  配置后端请求类型 get的方式或者post   true异步请求数据
            xmlHttpRequest.open("get", "/hotwed_war_exploded/ajax333", true);
            //  监听数据是否请求成功
            xmlHttpRequest.onreadystatechange = function () {
                //  服务器和客户端握手
                if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200)//服务器解析成功
                {
                    //responseText获取后端返回的数据给data
                    let data =JSON.parse(xmlHttpRequest.responseText);

                    //把json格式的字符串转换为JSON格式的对象,反序列化,可以方便获取到健和值
                    //在控制台输出
                    // 在JavaScript中使用的,它试图打印出数组data中第三个元素的ID和name属性。
                    console.log("data" + data[2].ID);
                    console.log("data" + data[2].Age);
                    console.log("data" + data[2].Name);

                    document.querySelector(".name").innerHTML = data[2].name;
                    document.querySelector(".age").innerHTML = data[2].age;
                    document.querySelector(".id").innerHTML = data[2].id;
                    //把data渲染到前段页面
                    // document.getElementById("show").innerHTML=data
                }
            }
            //发送请求
            xmlHttpRequest.send();
        }
    </script>
</head>
<body onload="ajax4()">

<div id="show" style="border: solid 3px red;width: 500px;height: 100px;background: lightblue;">
   姓名:<span class="name"></span>
    年龄:<span class="age"></span>
    性别:<span class="id"></span>
</div>
<button>
    请求数据
</button>

</body>
</html>

使用时要对JSON添加依赖后再使用

   <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version> 1.2.70</version>
    </dependency>

后端Java中接收前端Ajax发送的JSON数据,可以通过以下步骤进行实现: 1. 在前端使用JavaScript编写Ajax请求并将数据JSON格式发送到后端Java。 ```javascript var jsonData = { "name": "John", "age": 30, "city": "New York" }; $.ajax({ type: "POST", url: "your-java-api-url", contentType: "application/json; charset=utf-8", dataType: "json", data: JSON.stringify(jsonData), success: function(response){ console.log(response); }, error: function(error){ console.log(error); } }); ``` 2. 在后端Java中使用HttpServletRequest对象获取JSON数据并解析。 ```java import org.json.JSONObject; @WebServlet("/your-java-api-url") public class YourServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { StringBuilder sb = new StringBuilder(); String line; while ((line = request.getReader().readLine()) != null) { sb.append(line); } JSONObject jsonObject = new JSONObject(sb.toString()); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); String city = jsonObject.getString("city"); // Do something with the data } } ``` 在上面的代码中,我们首先获得了HttpServletRequest对象,然后通过该对象的getReader方法获取JSON数据。接着,我们使用JSONObject类解析JSON数据获取数据中的各个属性值,最后可以对数据进行相应的处理和操作。 需要注意的是,由于使用了request.getReader()方法获取JSON数据,因此需要在前端Ajax请求中设置contentType为"application/json; charset=utf-8",以确保数据JSON格式发送到后端Java。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值