返回Json

直接返回纯文本

优点是简单,缺点是要手动重写toString方法,如果有很多类要传输,需要重写所有的类

package com.updownloadfiles.servlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/json")
public class Json extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       resp.setContentType("text/json;charset=UTF-8"); //设置返回的头文件为json
       resp.setCharacterEncoding("UTF-8");
       PrintWriter out = resp.getWriter();
       String str = "{\"年龄\":\"admin\", \"年龄\":\"18\"}";

       out.println(str);
       out.flush();
       out.close();
    }
}

使用三方jar

有很多已经完善好的包可以使用(fastjson, gson,jackson等),快捷方便地把对象转换为json格式

仅以fastjson为例

package com.xxxx.servlet;

import com.alibaba.fastjson.JSON;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;

@WebServlet("/json")
public class Json extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html");
        resp.setCharacterEncoding("UTF-8");

        HashMap usr = new HashMap();
        usr.put("admin", "123");
        usr.put("mosquito", "255");

        String json = JSON.toJSONString(usr);

        PrintWriter out = resp.getWriter();

        System.out.println(json);
        out.print(json);

        out.flush();
        out.close();
    }
}