JQuery封装的ajax-就像res.msg;

时间:2024-11-14 08:43:32
 $(function (){
        $("button").click(function (){
            $.ajax({
                url:"/indexServlet",//请求路径servlet,如果一直拼会麻烦(即使是post也可以拼)
                type:"get",
                async:"false",//表示请求是否异步处理,默认异步,false是同步
                data:{uname:"123",upwd:"123"},
                dataType:"json",//返回值类型
                success:function (res) {
                    $("h1").text(res.msg);

    
                }
            });
        });
    });

3.2.返回json数组

使用JSONArray jsonArray = new JSONArray();//[{},{},{}]

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       resp.setCharacterEncoding("utf-8");

        resp.setContentType("application/json");  // 设置返回类型为 JSON

        PrintWriter out = resp.getWriter();
        String uname = req.getParameter("uname");
        String upwd = req.getParameter("upwd");

        JSONObject jsonObject = new JSONObject();//{}

        JSONArray jsonArray = new JSONArray();//[{},{},{}]
        System.out.println("===="+uname+upwd);
        if (uname.equals("123")&&upwd.equals("123")){
            jsonObject.put("code",200);//{code:200}
            jsonObject.put("msg","登陆成功");//{code:200,msg:”登陆成功“}

        }else {
            jsonObject.put("code",400);
            jsonObject.put("msg","登陆失败");//{code:200,msg:”登陆失败“}
        }
        jsonArray.add(jsonObject);
        out.println(jsonArray);


    }

4.ResultJSON来统一格式化结果

它的目的是将服务器处理后的结果(如状态码、消息和数据)结构化并统一格式化为 JSON 形式,以便客户端(如前端 JavaScript)能够轻松地解析和处理这些数据。

(记得带上get set toString)

public class ResultJSON {
    private int code;    // 状态码,通常 200 表示成功,其他表示失败或错误
    private String msg;   // 响应消息
    private Object data;  // 可能包含的附加数据(可以是任意类型)

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       resp.setCharacterEncoding("utf-8");

        resp.setContentType("application/json");  // 设置返回类型为 JSON

        PrintWriter out = resp.getWriter();
        String uname = req.getParameter("uname");
        String upwd = req.getParameter("upwd");
        ResultJSON resultJSON = null;//这是我们自定义封装的类,目的是统一json对象
        System.out.println("===="+uname+upwd);
        if (uname.equals("123")&&upwd.equals("123")){
            resultJSON = new ResultJSON(200,"登陆成功");
        }else {
            resultJSON = new ResultJSON(400,"登陆失败");
        }
        
        JSONObject json = new JSONObject();//{}
        String jsonstr = json.toJSONString(resultJSON); //将对象转为JSON对象
        out.println(jsonstr);

    }

4.1如果到时有传对象:
    public ResultJSON getUserList() {
        // 假设我们从数据库查询到了一些用户数据
        List<User> users = new ArrayList<>();
        users.add(new User("john_doe", "john.doe@example.com"));
        users.add(new User("jane_doe", "jane.doe@example.com"));

        // 使用 ResultJSON 封装结果
        return new ResultJSON(200, "查询成功", users);
    }