servlet学习笔记3 使用Ajax获取数据并使用echarts绘制图表
客户端代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>eChart</title> <!--Step:1 Import a module loader, such as esl.js or require.js--> <!--Step:1 引入一个模块加载器,如esl.js或者require.js--> <script src="js/esl.js"></script> <script> function $(obj){ return document.getElementById(obj); } var a1 , a2; var req = AjaxCreateRequest(); req.open("POST", "getSimulateData"); req.onreadystatechange = function(){reqCallback(req);} req.send(null); function AjaxCreateRequest(){ //返回Ajax对象 if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ try{ return new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ return new ActiveXObject("Microsoft.XMLHTTP"); } } return null; } function reqCallback(req){ if(req.readyState == 4){//请求结束后 if(req.status != 200){ alter("请求错误"); }else{ var ss = req.responseText.split(";"); a1 = ss[0].split(","); a2 = ss[1].split(","); } } } </script> </head> <body> <!--Step:2 Prepare a dom for ECharts which (must) has size (width & hight)--> <!--Step:2 为ECharts准备一个具备大小(宽高)的Dom--> <div id="main" style="height:500px;border:1px solid #ccc;padding:10px;"></div> <div id="mainMap" style="height:500px;border:1px solid #ccc;padding:10px;"></div> <script type="text/javascript"> // Step:3 conifg ECharts's path, link to echarts.js from current page. // Step:3 为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需图表路径 require.config({ paths:{ echarts:'./js/echarts', 'echarts/chart/bar' : './js/echarts-map', 'echarts/chart/line': './js/echarts-map', } }); // Step:4 require echarts and use it in the callback. // Step:4 动态加载echarts然后在回调函数中开始使用,注意保持按需加载结构定义图表路径 require( [ 'echarts', 'echarts/chart/bar', 'echarts/chart/line', ], function(ec) { //--- 折柱 --- var myChart = ec.init(document.getElementById('main')); myChart.setOption({ tooltip : { trigger: 'axis' }, legend: { data:['Co2浓度','时间'] }, toolbox: { show : true, feature : { mark : {show: true}, dataView : {show: true, readOnly: false}, magicType : {show: true, type: ['line', 'bar']}, restore : {show: true}, saveAsImage : {show: true} } }, calculable : true, xAxis : [ { type : 'category' ,data : a1 } ], yAxis : [ { type : 'value', splitArea : {show : true} } ], series : [ { name:'co2', type:'line' ,data: a2 } ] }); } ); </script> </body> </html>
服务端代码:收到post请求后返回数据
package swun.phk.cavesimulation.webserver; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class getSimulateData */ @WebServlet("/getSimulateData") public class getSimulateData extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public getSimulateData() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub System.out.println("收到请求,返回数据..."); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String str1="2.6, 5.9, 9.0, '-', 28.7, 70.7, '-', 182.2, 48.7, 18.8, 6.0, 2.3, 5.9, 9.0, '-', 28.7, 70.7, '-', 182.2, 48.7, 18.8, 6.0, 2.3"; String str2="2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3"; out.append(str1+";"+str2); out.flush(); out.close(); } }

浙公网安备 33010602011771号