Send data in JSON format to the client

1. Import jackson dependencies

    <dependencies>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-parameter-names</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jdk8</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
            <version>2.11.0</version>
        </dependency>
    </dependencies>

Second, define the entity class

public class UserBean {
    private Integer id ;
    private String name;
    @JsonFormat(pattern = "yyyy-MM-dd")//指定对象序列化为JSON时的日期格式
    private LocalDate birthday;
    private Integer money;
    private Double payTaxes;
}

 3. Business components

Output JSON string of object in servlet

public class TestServlet extends HttpServlet {
    @Override
    public void init() throws ServletException {
        System.out.println("servlet初始化");
    }

    @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 {
        resp.setContentType("text/html;charset=utf-8");
    
        List<UserBean> list = new ArrayList<>();
        list.add(new UserBean(1,"熊大", LocalDate.parse("1997-12-08"),2500,0.0));
        list.add(new UserBean(2,"熊二", LocalDate.parse("1997-12-08"),6000,180.55));

        ObjectMapper om = new ObjectMapper();
        //注册时间模板
        om.registerModule(new JavaTimeModule());
        //将java对象转化为json字符串
        String str = om.writeValueAsString(list);
        resp.getWriter().println(str);

    }
}

4. Start 

public class MainTomcat {
    public MainTomcat(){
        Tomcat tomcat = new Tomcat();
        //设置启动端口
        tomcat.setPort(9090);
        //引导http引擎
        tomcat.getConnector();
        //创建上下文对象
        Context context = tomcat.addContext("",null);
        //注册servlet
        Wrapper wrapper = Tomcat.addServlet(context,"testServlet",new TestServlet());
        wrapper.setLoadOnStartup(1);
        //设置servlet访问路径
        wrapper.addMapping("*.yy");
      
        try {
            //启动tomcat
            tomcat.start();
        } catch (LifecycleException e) {
            throw new RuntimeException(e);
        }
    }

    public static void main(String[] args) {
        new MainTomcat();
    }
}

Test: http://localhost:9090/ *.yy 

Guess you like

Origin blog.csdn.net/m0_74421344/article/details/130211389