Servlet---ECharts

本文通过Java示例演示如何在网页上使用ECharts创建图表,包括引入ECharts库,发送AJAX请求获取数据,并动态更新图表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用ECharts在页面中插入图表

网站网址
在这里插入图片描述

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <meta charset="utf-8">
    <!-- 引入 ECharts 文件 -->
</head>
<body>
    <!--ECharts 准备一个具备大小(宽高)的 DOM -->
    <div id="main" style="width: 600px;height:400px;"></div>

    <script src="<%=request.getContextPath()%>/static/echarts.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="<%=request.getContextPath()%>/static/jquery-2.1.4.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
        $.post(
            '${pageContext.request.contextPath}/class?method=selectClassCount',
            function(jsonObj) {
                console.log(jsonObj);
                // [{value: 2, name: "java1807"}, {…}, {…}]
                var xArray = new Array();
                var yArray = new Array();
                $(jsonObj).each(function (){
                    // this  {value: 2, name: "java1807"}
                    xArray.push(this.name);
                    yArray.push(this.value);
                })
                // 指定图表的配置项和数据
                var option = {
                    title: {
                        text: '班级人数统计'
                    },
                    tooltip: {},
                    legend: {
                        data:['班级']
                    },
                    xAxis: {
                        data: xArray
                    },
                    yAxis: {},
                    series: [{
                        name: '人数',
                        type: 'bar',
                        data: yArray
                    }]
                };
                // 使用刚指定的配置项和数据显示图表。
                myChart.setOption(option);
            },
            'json'
        );

</script>
</body>
</html>

switch (method){
            case "selectClass":
                selectClass(req,resp);
                break;
            case "selectClassCount":
                selectClassCount(req,resp);
                break;
        }
private void selectClassCount(HttpServletRequest req, HttpServletResponse resp) {
        System.out.println("classServlet.selectClassCount");
        Connection connection = null;
        PreparedStatement statement = null;
        ResultSet resultSet = null;
        List<ClassCountVO> list = new ArrayList<>();
        try {
            connection = JDBCUtil.getConnection();
            String sql = "SELECT b.name,COUNT(*) AS COUNT FROM student AS s INNER JOIN class AS b ON s.class_id=b.id GROUP BY b.id";
            statement = connection.prepareStatement(sql);
            System.out.println(statement);
            resultSet = statement.executeQuery();
            while (resultSet.next()) {
                String name = resultSet.getString("name");
                int count = resultSet.getInt("count");
                ClassCountVO classCountVO = new ClassCountVO(name, count);
                list.add(classCountVO);
            }
            for (ClassCountVO classCountVO : list) {
                System.out.println(classCountVO);
            }

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

        JSONUtil.array2Json(list, resp);
    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值