向客户端发送JSON格式数据
一、导入jackson依赖
<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>
二、定义实体类
public class UserBean {
private Integer id ;
private String name;
@JsonFormat(pattern = "yyyy-MM-dd")//指定对象序列化为JSON时的日期格式
private LocalDate birthday;
private Integer money;
private Double payTaxes;
}
三、业务组件
在servlet中输出 对象的JSON字符串
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);
}
}
四、启动
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();
}
}
测试:http://localhost:9090/*.yy
还没有评论,来说两句吧...