第八章:Echarts统计功能【基于Servlet+JSP的图书管理系统】

news2024/11/17 15:58:05

Echarts统计

在这里插入图片描述

1.图书统计

  通过Echarts根据不同的数据类型统计数据的数量。并且通过柱状图来展示

在这里插入图片描述

实现的步骤:

引入echars的js文件

在这里插入图片描述

然后定义柱状图展示的div

在这里插入图片描述

然后是基础的js代码

<script type="text/javascript">
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('echarts-book-chart'));
    // 指定图表的配置项和数据
    var option = {
        tooltip: {},
        legend: {
            data: ['数量']
        },
        xAxis: {
            data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
        },
        yAxis: {},
        series: [
            {
                name: '数量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }
        ]
    };
    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
    // 需要去后台加载相关的数据
    $.get("/homeServlet",function(data){
        // 更新option中的信息
        option.xAxis.data = data.typeNames
        option.series[0].data = data.bookNums
        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    })
</script>

最后是Servlet中的统计查询操作

@WebServlet(name = "homeServlet",urlPatterns = {"/homeServlet"})
public class HomeServlet extends HttpServlet {

    private IBookTypeService typeService = new BookTypeServiceImpl();

    private IBookService bookService = new BookServiceImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       // 查询统计相关的数据 查询出所有的类别信息。以及对应的类型的图书数量
        List<BookType> types = typeService.list();
        // 需要返回的统计的数据
        List<String> typeNames = new ArrayList<>();
        List<Integer> bookNums = new ArrayList<>();
        if(types != null && types.size() > 0){
            for (BookType type : types) {
                // 根据 类型的编号查询图书的数量
                Book book = new Book();
                book.setTypeid(type.getId());
                List<Book> list = bookService.list(book);
                typeNames.add(type.getName());
                bookNums.add(list.size());
            }
        }
        // 返回的统计的数据通过Map统一处理
        Map<String,Object> map = new HashMap<>();
        map.put("typeNames",typeNames);
        map.put("bookNums",bookNums);
        resp.setContentType("application/json;charset=utf-8");
        // map 转换为对应的json数据
        String json = JSONObject.toJSONString(map);
        PrintWriter writer = resp.getWriter();
        writer.write(json);
        writer.flush();
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req,resp);
    }
}

2.饼图的应用

  统计不同的书籍类型的图书数量。我们也可以通过饼图的方式来展示数据。具体的效果如下

在这里插入图片描述

然后这块需要展示的数据的结构为:

// 指定图表的配置项和数据
var option = {
    tooltip: {
        trigger: 'item'
    },
    legend: {
        orient: 'vertical',
        left: 'left'
    },
    series: [
        {
            type: 'pie',
            data: [
                {
                    value: 335,
                    name: '直接访问'
                },
                {
                    value: 234,
                    name: '联盟广告'
                },
                {
                    value: 1548,
                    name: '搜索引擎'
                }
            ]
        }
    ]
};

那么与之对应的在HomeServlet中我们就需要对应的准备相关的数据

在这里插入图片描述

3.首页统计

  在整个的首页布局中我们可以使用模板中提供的统计样式

在这里插入图片描述

在这里插入图片描述

这块有个小问题需要注意。echarts的版本兼容性问题。我们在这块通过iframe来解决
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/921497.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊鲲鹏测评养号系统是怎么用的

亚马逊鲲鹏系统是一款可以全自动测评养号的软件&#xff0c;有批量注册亚马逊买家号、AI智能养号、自动绑定收货地址及支付卡、开通二步验证、根据关键词货比三家后进行加购、下单、留评等。 想要使用这款软件进行下单&#xff0c;那么首先我们需要有买家账号才行&#xff0c;买…

Python(八十六)字符串的编码与解码

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

腾讯、众安、卡斯柯、极狐GitLab 圆桌精华版:“狂飙”减速,效能登场

目录 Q1&#xff1a;近年来众多软件企业纷纷投身“效能革命”&#xff0c;降本增效的呼声越来越大&#xff0c;背后的原因是什么&#xff1f; 变化与成本方法论进步&#xff0c;点燃研发效能。 “狂飙”踩下刹车&#xff0c;“湖水岩石效应”加速显现。 Q2&#xff1a;当我…

【附安装包】Quartus II 18.0安装教程

软件下载 软件&#xff1a;Quartus II版本&#xff1a;18.0语言&#xff1a;英文大小&#xff1a;2.62G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pan.baidu.c…

长时间带什么耳机最舒服,分享长时间佩戴舒服的耳机推荐

时代在进步&#xff0c;科技在不断革新。近年来&#xff0c;一种崭新的耳机——骨传导耳机&#xff0c;如火如荼地进驻耳机市场&#xff0c;引起一阵热潮。不论是平日里的工作出勤还是运动时的挥洒汗水&#xff0c;相比传统耳机&#xff0c;骨传导耳机无疑更加贴合现代生活的需…

客服如何使用ChatGPT提高工作效率

文章目录 ChatGPT简介ChatGPT在客服中的应用ChatGPT的优势和挑战客服人员应该如何应对1. 与ChatGPT保持较高的专业水平2. 与ChatGPT建立良好的合作关系3. 强调人性化的服务4. 不断提升沟通和解决问题的能力5. 提供多渠道的服务 总结 ✍创作者&#xff1a;全栈弄潮儿 &#x1f3…

水溶性近红外染料Sulfo-CY5 N3组织成像 | 星戈瑞

水溶性近红外染料Sulfo-CY5 N3在组织成像中具有重要的应用潜力。由于其近红外荧光特性和水溶性&#xff0c;Sulfo-CY5 N3可以在体内或体外对组织进行标记&#xff0c;用于生物医学研究、生物组织学和医学影像学等领域。以下是Sulfo-CY5 N3在组织成像中的应用&#xff1a; **1.…

javaweb03

Javaweb03 使用DAO层对学生管理系统进行处理 1.准备工作 创建DAOUtil工具类&#xff0c;封装JDBC package com.grg.util;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.A…

前端简介(HTML+CSS+JS)

学习Django过程中遇到一些前端相关的内容&#xff0c;于是整理了一下相关概念。 前端开发是创建WEB页面或APP等前端界面呈现给用户的过程。 如果只是想要入门前端&#xff0c;只要学习网页三剑客(HTML、CSS、JavaScript)即可。 如果把网页比喻成一个房子&#xff0c;HTML就是…

2023年人工智能与自动化控制国际学术会议(AIAC 2023)

2023年人工智能与自动化控制国际学术会议&#xff08;AIAC 2023&#xff09; The 2023 International Conference on Artificial Intelligence and Automation Control 2023年人工智能与自动化控制国际学术会议&#xff08;AIAC 2023&#xff09;将于2023年10月27-29日在中…

K8S集群中使用JDOS KMS服务对敏感数据安全加密 | 京东云技术团队

基本概念 KMS&#xff0c;Key Management Service&#xff0c;即密钥管理服务&#xff0c;在K8S集群中&#xff0c;以驱动和插件的形式启用对Secret&#xff0c;Configmap进行加密。以保护敏感数据&#xff0c; 驱动和插件需要使用者按照需求进行定制和实现自己的KMS插件&…

plist打包工具,CppTextu打包png生成多张大图及plist文件

plist打包工具&#xff0c;CppTextu打包png生成多张大图及plist文件 TexturePacker是一款快速打包图片的工具&#xff0c;功能强大&#xff0c;非常适合打包游戏素材,如果游戏素材比较多&#xff0c;打包时会根据设置图片最大尺寸可能生成多张图片&#xff0c;这个功能是旨在减…

冠达管理股票分析:底部光头光脚阴线?

底部光头光脚阴线”这个词组起源于股市中的K线图形状剖析&#xff0c;表示股价处于趋势下跌并抵达底部时呈现的一种K线图形状。具体来说&#xff0c;它是由一根下影线较长&#xff0c;实体较小或许没有实体&#xff0c;上影线极短甚至完全没有的K线构成。那么&#xff0c;为什么…

港联证券|股票风险大吗?股票亏了怎么办?

在股市波动剧烈的时分&#xff0c;很多人会忧虑本身投资是否安全&#xff0c;是否能够获得理想的收益。那么股票危险大吗&#xff1f;股票亏了怎么办&#xff1f;我们准备了相关内容&#xff0c;以供参考。 股票危险大吗&#xff1f; 股票危险大不大并没有一个肯定的答案&…

gif太大了微信发不了?怎么压缩gif图片?

微信发送gif动图是有限制的&#xff0c;尺寸不能超过1000&#xff0c;大小不能超过10M&#xff0c;因此当gif动图超出限制范围就会出现无法发送的问题&#xff0c;这时候简单的解决方法就是将gif动图的大小压缩变小&#xff0c;下面给大家汇总了几个方法&#xff0c;供参考使用…

LVS DR模式搭建

目录 一、DR模式概述 一、与NET模式的区别 二、操作命令图 三、搭建流程 一、首先配置三台虚拟机并配置环境&#xff08;关闭防火墙&#xff0c;宽容模式&#xff09; 二、ping通百度 三、在115.3的&#xff08;lvs&#xff09;虚拟机上安装 ipvsadm 四、调整ARP参数 五…

数据库类型

文章目录 数据库的类型1. 关系型数据库2. 非关系型数据库NOSQL3. 常见的关系型数据库3.1 Oracle3.2 DB23.3 SQL Server3.4 MySQL 数据库的类型 主要分为四大类&#xff1a; 一&#xff1a;关系型数据库。 二&#xff1a;非关系型数据库。 三&#xff1a;网状数据库。 四&#…

ssm学生公寓管理中心系统源码和论文

ssm学生公寓管理中心系统源码和论文057 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;…

猿创征文|一位.Net开发工程师的客户端技术栈的学习路线

&#x1f40b;作者简介&#xff1a;博主是一位.Net开发者&#xff0c;同时也是RPA和低代码平台的践行者。 &#x1f42c;个人主页&#xff1a;会敲键盘的肘子 &#x1f430;系列专栏&#xff1a;.Net实用方法总结 &#x1f980;专栏简介&#xff1a;博主针对.Net开发和C站问答过…

mybatis-plus如何使用枚举类来实现性别和标签的数字带描述

文章目录 目录 文章目录 前言 一、环境准备 二、使用步骤 一 实体类 二 枚举类 三 持久层 四 控制层 总结 前言 枚举是一种表示一组有限可能取值的数据类型。它具有以下几个好处&#xff1a; 易于理解和维护&#xff1a;枚举提供了一种清晰明了的方式来表示一组具体的取值&a…