highcharts中的data是一个json数组:data:[4,1,12,4,3,3,1]
所以在servlet封装json为:
public class AdFromByMdaReportAction extends Action{
@Override
public void Perform() throws Exception {
// TODO Auto-generated method stub
LinkedHashMap<String, LinkedList<String>> map=new LinkedHashMap<String, LinkedList<String>>();
LinkedList<String> list=new LinkedList<String>();
list.add("22");list.add("12");list.add("11");list.add("10");list.add("3");
map.put("show", list);
LinkedList<String> list1=new LinkedList<String>();
list1.add("12");list1.add("32");list1.add("10");list1.add("8");list1.add("5");
map.put("IndependentAccess", list1);
LinkedList<String> list2=new LinkedList<String>();
list2.add("32");list2.add("2");list2.add("10");list2.add("18");list2.add("15");
map.put("ip", list2);
LinkedList<String> list3=new LinkedList<String>();
list3.add("12");list3.add("21");list3.add("30");list3.add("18");list3.add("25");
map.put("VisitTime", list3);
JSONObject json=JSONObject.fromObject(map);
System.out.println(map);
PrintWriter out=response.getWriter();
out.print(json);
out.close();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
然后在js中,使用ajax请求servlet,然后再生成折线图:
$.ajax({
type:'POST',
url:'<%=request.getContextPath()%>/c?action=media.report.AdFromByMdaReportAction',
data:'',
dataType:'json',
success:function(data){
console.log(data);
showHIghcharts(data);
}
});
function showHIghcharts(data){
$('#zhexiantu').highcharts({
chart:{
},
title:{
text:'来源分析—广告(媒体)',
x:-20
},
subtitle:{
text:'数据来源:afa',
x:-20
},
xAxis:{
categories:['0:00','4:00','8:00','12:00','16:00','20:00','24:00'],//维度--时间
},
yAxis:{
title:{
text:'指标'
},
plotLines:[{
value:0,
width:1,
color:'#eeeee'
}]
},
legend:{
layout:'vertical',
align:'right',
verticalAlign:'middle',
borderWidth:0
},
series:[{
name:'浏览量(PV)',
data:eval("[" + data.show + "]")
},
{
name:'独立访客(UV)',
data:eval("[" + data.IndependentAccess + "]")
},
{
name:'IP',
data:eval("[" + data.ip + "]")
},
{
name:'访问次数',
data:eval("[" + data.VisitTime + "]")
},
]
})
}