Web app ------ 从Servlet读取Json数据并显示,生成历史数据曲线图
1、我的Servlet端
创建Servlet;
导入需要的jar包;
接收到客户端的请求;
数据类;
从数据库的读取数据并存入链表;
转成Json格式返回给客户端;
(1)创建Servlet
参考:
(2)导入需要的jar包
下载网址:http://www.java2s.com/Code/Jar/j/Catalogj.htm
(3)接收到客户端的请求
String sID = request.getParameter("sID");//sID
对应的客户端请求代码:$.ajax({...data:"sID="+sID,...});
(4)数据类
package pro8; ? public class Temp_Data { private String sDateTime; private float sValue; public Temp_Data() {} public Temp_Data(String time, float value) { sDateTime=time; sValue=value; } ? public void setTime(String time) { sDateTime=time; ? } ? public void setValue(float value) { sValue=value; ? } ? public String getTime() { return sDateTime; ? } ? public float getValue() { return sValue; ? } }
(5)从数据库的读取数据并存入链表
参考的是菜鸟教程的代码:https://www.runoob.com/servlet/servlet-database-access.html
包括:①数据库加载驱动②数据库连接③数据库查询④返回结果并存入链表
public class Hello extends HttpServlet { // JDBC 驱动名及数据库 URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/project1"; // 数据库的用户名与密码,需要根据自己的设置 static final String USER = "root"; static final String PASS = "123456"; public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection conn = null; java.sql.Statement stmt = null; /*...接收到客户端的请求...*/ try{ /*①数据库加载驱动*/ // 注册 JDBC 驱动器 Class.forName(JDBC_DRIVER); /*②数据库连接*/ conn = DriverManager.getConnection(DB_URL,USER,PASS); /*③数据库查询*/ stmt = conn.createStatement(); String sql; sql = "select sDateTime,sValue from table1 where sID = '"+sID+"'"+"ORDER BY sDateTime ASC"; System.out.print(sID); ResultSet rs = stmt.executeQuery(sql); //这里是链表 Listtemplist=new ArrayList (); /*④返回结果并存入链表*/ while(rs.next()){ // 通过字段检索 String time = rs.getString("sDateTime"); float value = rs.getFloat("sValue"); Temp_Data temp=new Temp_Data(time,value); templist.add(temp); } //out.print(sID); /*...转成Json格式返回给客户端...*/ //System.out.println("array--->"+jarray); // 完成后关闭 rs.close(); stmt.close(); conn.close(); } catch(SQLException se) { // 处理 JDBC 错误 se.printStackTrace(); } catch(Exception e) { // 处理 Class.forName 错误 e.printStackTrace(); }finally{ // 最后是用于关闭资源的块 try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } } } ?
(6)转成Json格式返回给客户端
JSONArray jarray=JSONArray.fromObject(templist); out.print(jarray);
2、客户端代码
(1)界面部分
?
在此处显示曲线图:
在此处显示历史数据: