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);
//这里是链表
List templist=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)界面部分
?
在此处显示曲线图:
在此处显示历史数据: