从Servlet到JSP的java高级图表
我对Highcharts和servlet/jsp有一些问题
我不太熟悉AJAX和JQUERY
我想在一个jsp Page2实时行序列中显示通过java servlet从数据库加载的相关数据(x,y)
以下是我的jsp中的代码:
<script type="text/javascript">
$(function () {
var seriesOptions = [];
$.getJSON('Grafico', function(data) {
// Populate series
for (i = 0; i < data.DeltaRealTime.length; i++){
seriesOptions[i] = {
name: data.DeltaRealTime[i].name,
data: [data.DeltaRealTime[i].key, parseFloat(data.DeltaRealTime[i].value)]
};
}
$('#container').highcharts({
chart: {
type: 'spline',
animation: Highcharts.svg, // don't animate in old IE
marginRight: 10,
events: {
load: function() {
// set up the updating of the chart each second
setInterval(function() {
$.getJSON('Grafico', function(data) {
// Populate series
for (i = 0; i < data.DeltaRealTime.length; i++){
var chart = $('#container').highcharts();
chart.series[i].addPoint([data.DeltaRealTime[i].key, parseFloat(data.DeltaRealTime[i].value)]);
}
});
}, 1000);
}
}
},
title: {
text: "Valori Delta"
},
xAxis: {
title: {
text: 'Campione'
}
},
yAxis: {
labels: {
format: '{value:.1f}'
},
title: {
text: 'Delta(f)'
},
},
series: seriesOptions
});
});
});
</script>
这是“Grafico”servlet:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/json");
PrintWriter out = response.getWriter();
try {
HttpSession session = request.getSession();
Seriale seriale = (Seriale)session.getAttribute("seriale");
if(seriale == null)
System.out.println("SERIALE=NULL");
else {
if(seriale.getSeriale().isOpen())
System.out.println("SERIALE APERTA");
System.out.println("ID SESSIONE DATI="+seriale.getSessioneDati().getId());
}
if(seriale != null && seriale.getSeriale().isOpen()) {
System.out.println("INIZIO A LEGGERE I DATI DAL DB");
Db db = new Db();
db.apriConnessione();
String sql = "SELECT * FROM MisuraRiposo ORDER BY id DESC LIMIT 1";
PreparedStatement ps = db.getConnection().prepareStatement(sql);
ResultSet rs = ps.executeQuery();
Map<String, String> data1 = new HashMap<String,String>();
Map<String, String> data2 = new HashMap<String,String>();
if(rs.next()) {
data1.put("name", "f1");
data1.put("key", rs.getString("campione"));
data1.put("value", rs.getString("f1"));
data2.put("name", "f2");
data2.put("key", rs.getString("campione"));
data2.put("value", rs.getString("f2"));
}
rs.close();
ps.close();
db.chiudiConnessione();
JSONObject json1 = new JSONObject(data1);
JSONObject json2 = new JSONObject(data2);
JSONArray array = new JSONArray();
array.put(json1);
array.put(json2);
JSONObject finalObject = new JSONObject();
finalObject.put("DeltaRealTime", array);
out.write(finalObject.toString());
}
}
catch(JSONException jse) {
jse.printStackTrace();
}
catch(Exception e) {
e.printStackTrace();
}
finally {
out.flush();
out.close();
System.out.println("Fine servlet grafico");
}
}
问题是我无法获得想要的行为。我只获得断开连接的点
提前感谢您的帮助:)
共 (0) 个答案