垃圾分类网站

news2024/11/24 16:40:20

@TOC

springboot0769垃圾分类网站

绪论

1.1研究背景

随着网络不断的普及发展,垃圾分类网站依靠网络技术的支持得到了快速的发展,首先要从用户的实际需求出发,通过了解用户的需求开发出具有针对性的垃圾分类、垃圾图谱等功能,利用目前网络给用户带来的方便快捷这一特点对系统进行调整,设计的系统让用户的使用起来更加方便,本系统的主要目的就是给用户带来快捷与高效、安全,用户只要在家中就可以进行操作[1]。同时随着电子商务的发展网上垃圾分类网站已经受到广大用户的关注。

互联网发展至今,已经解决了很多我们解决不了的难题,使得我们工作更加便捷,提高了我们的工作效率。目前各行各业都在运用网络信息管理程序,不同的用户也都接触到信息管理,特别是在各大电商行业广泛的应运起来。通过对当前网络环境发展的分析与总结,开发垃圾分类网站可以改变以往的手工统计方式,改变传统线下垃圾分类网站的状态,由于用户的不断增多,使用传统的线下垃圾分类网站模式已经远远不能满足于用户需求了,而且越来越多的商家也在开通线上进行垃圾分类网站,所以开发一个垃圾分类网站可以解决商家不利于线下垃圾分类网站的问题,同时商家可以利用网络对垃圾分类信息进行管理,设计的网站保证信息的完整安全,这样才能提高工作效率,保证系统安全正常的运行[2]。

1.2研究现状

在国外他们的信息技术的发展是我国的许多倍,从1946年诞生在美国的世界上第一台计算机开始,国外的信息技术就一直在飞速地发展,一些计算机应用软件也纷纷出现,软件技术也一直在不断完善和更新[3]。软件行业早已遍布各个地方。

在国内,我国信息技术发展起步比较晚,后期慢慢的不断地进行优化和改革,才让我们的信息技术上升到新的阶段。在现在软件开发的技术经过大量研究和生活实践基本能够达到独立开发系统应用的水平,生活中的各个行业也把软件操作替换成传统的记录模式。软件行业正是现在比较热门的行业[4]。

社会主义进入新时代,经济实力越来越强。我们也变得越来越忙碌、对生活的要求也变得更加严格,对快速和方便的服务的需求也在逐渐增加,所以网上垃圾分类网站的开发给用户带来了足够的便利,用户通过系统来满足生活中的需求,因此,由于信息的增加,信息处理系统也随之增加,通过网络来满足现代用户需求[5]。此次开发设计主要是实现垃圾分类网站 ,结合java技术以及MYSQL数据库进行设计,弥补目前在线垃圾分类网站中的不足,来开发出一款即方便又实用的垃圾分类网站 ,并且设计的程序具有界面整洁、功能强大等特性,从全局来说,垃圾分类网站的设计解决了信息零散,该系统实现,可以投入到真实环境中,这样不仅能解决以上提及的问题,让信息管理更准则。

1.3研究内容

该垃圾分类网站的开发和设计根据用户的实际情况出发,对系统的需求进行了详细的分析,然后进行系统的整体设计,最后通过测试使得系统设计的更加完整,可以实现系统中所有的功能,在开始编写论文之前亲自到图书馆借阅Spring Boot书籍,MYSQL数据库书籍等编程书籍,然后针对开发的垃圾分类网站 ,去网上查找了很多别人做好的系统,参照他们的设计结果,来对自己的系统进行更加详细的系统的设计,将系统中所有的功能结果一一列举出来,然后进行需求分析,最后对所有的功能模块进行编码,最后完成系统的整体测试,实现系统的正常运行[6]。

这次编写的论文包含了6个部分的内容,具体内容如下:

第一部分绪论:文章主要从课题背景以及研究现状综合阐述了开发此系统的必要性。

第二部分相关技术:系统开发用到的各种技术都大致做出了简介。

第三部分系统分析:对系统的可行性分析以及对所有功能需求进行详细的分析,来查看该系统是否具有开发的可能。

第四部分系统设计:功能模块设计和数据库设计这两部分内容都有专门的表格和图片表示。

第五部分系统实现:进行系统主要功能模块的界面展示。

第六部分系统测试:测试系统的每一个功能是否能够正常运行,是否可以满足用户的需求。

2 系统关键技术

2.1 Spring Boot框架

Spring Boot是Pivotal团队的一个新框架,旨在简化新Spring应用程序的初始设置和开发。该框架使用特定的配置方法,无需开发人员定义样板配置。通过这种方式,Spring Boot旨在成为蓬勃发展的快速应用程序开发领域的领导者。 Spring Boot特点: 1、创建一个单独的Spring应用程序; 2、嵌入式Tomcat,无需部署WAR文件; 3、简化Maven配置; 4、自动配置Spring; 5、提供生产就绪功能,如指标,健康检查和外部配置; 6、绝对没有代码生成和XML的配置要求; 安装步骤: 最基本的是,Spring Boot是一个可以被任何项目的构建系统使用的库集合。 为简单起见,该框架还提供了一个命令行界面,可用于运行和测试Boot应用程序。 可以从Spring存储库手动下载和安装框架的已发布版本,包括集成的CLI(命令行界面)。 更简单的方法是使用Groovy enVironment Manager(GVM),它负责处理Boot版本的安装和管理。 可以从GVM命令行GVM install springboot安装Boot及其CLI。 在OS X上安装Boot时可以使用Homebrew包管理器。要完成安装,首先使用brew tap pivotal / tap切换到pivotal存储库,然后执行brew install springboot命令。

2.2 JAVA技术

JAVA语言是目前软件市场上应用最广泛的语言开发程序。可以在多种平台上运用的,兼容性比较强,适应市面上大多数操作系统,不会出现乱码的现像,其扩展性和维护性都更好,具有分析问题和解决问题的能力,是面向过程的程序设计方便我们编写的代码更强壮。

JAVA相对其它语言来说,比较简单,编译起来更方便一些,安全可靠性高。不完全统计,现在全世界大约有2000多万人在使用它,JAVA既可以镶嵌使用又可以独力的使用。JAVA大致可以分成两个部分,一种部分是JAVA负责的编译,另一种是JAVA负责的运行。JAVA和C++语言很相像,但JAVA在编程时是一种以对象为导向的方式来进行编译的,使得编出来的软件可以单机使用,也可以在互联网上使用,检查出错更为方便。JAVA分布式、体系结构中立的特点也使得其存储更快,编议更简单。面向对象包括四个特点,一是封装,就是说在定义类的时候可以实现一定的功能和属性。二是抽象,属于类的一种,可以把一个具有共同属性的类封装在一个抽象里,便于简单编议。三是继承,顾名思义就是带有前者的特性。还有一个就是多态的特点,可以多种一起运用,表现了它可扩展性好[8]。

2.3 MYSQL数据库

网站的开发必须配套相应数据库,数据库具有一定的组织结构,能够存放和管理数据信息,在以前数据库的功能仅仅是数据保存和管理操作,但是时代的变迁和发展,现在的数据库演变成了数据处理的方式,数据库从最开始的简单存放数据表格信息到现在的能够存放成千上万数据的大型数据库,期间还是经历了许多的改革。

本次开发的垃圾分类网站 使用的数据库是MYSQL数据库,该数据库运行速度快,安全性能也很高,而且对使用的平台没有任何的限制,所以被广泛应运到系统的开发中。MySQL是一个开源和多线程的关系管理数据库系统,MySQL是开放源代码的数据库,具有跨平台性,虽然功能未必强大,导致很多人都了解这个数据库的基本应用,在数据库中,总共建立了10几个表,这里面每个表都是相对应的,都各自有各自的联系,数据库意义重大,如果没有数据库的链接,就没办法运行程序,这显然可以看见数据库与程序的重要性,是紧密相连接的[9]。

2.4 B/S结构

B/S(浏览器/服务器)结构是目前主流的网络化的结构模式,它能够把系统核心功能集中在服务器上面,可以帮助系统开发人员简化操作,便于维护和使用。只需要用户在用户端安装360浏览器、谷歌浏览器、QQ浏览器等当前大众浏览器,在电脑里面安装sqlserver、mysql数据库等数据库[10]。安装好的浏览器与服务器端的数据库进行信息数据的交互。很多专门软件能够做到的事情,采用B/S结构模式也能实现,它能够结合Web浏览器技术,ActiveX技术以及多种脚本语言等技术。帮助程序开发者节约了不少开发成本。目前B/S结构成为程序开发主流结构,它最好的地方就是没有地点限制还不用专门安装软件,笔记本或者电脑能够上网就能访问系统。系统使用B/S进行开发在后期系统维护上面就会很省事,不用什么问题都在服务器上面操作,简单的用户端处理就解决部分问题,开发出来的程序跟用户交互性上面也会增强,还可以实时刷新浏览器进行程序局部的数据信息更新。

图2-1 B/S模式三层结构图

3 系统分析

3.1 可行性分析

在系统开发之初要进行系统可行分析,这样做的目的就是使用最小成本解决最大问题,一旦程序开发满足用户需要,带来的好处也是很多的。下面我们将从技术上、操作上、经济上等方面来考虑这个系统到底值不值得开发。

3.1.1 技术可行性

本垃圾分类网站采用Spring Boot框架、JAVA编程语言和MYSQL数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,对他们的了解度也比较熟悉,所以技术开发上面还是有一定把握。

3.1.2经济可行性

我在设计该系统的时候主要是从节约成本出发,然后进行具体的系统的设计,在系统的设计过程中由于采用的所有工具以及技术支持全部都是免费的,因此不需要有任何的成本就可以进行该系统的设计。所用到的所有资源都是免费的,只要有网络就可以进行下载使用,不需要支付相应的费用,因此该项目在经济方面是完全可以实行的。

3.1.3操作可行性

本人自己就是学生,程序开发经验不足,在界面设计上面不会设计太复杂,要讲究简单好看,操作上要方便,不能让用户觉得不流畅。用户一旦进入操作界面,界面上就会有相应提示,跟着操作提示就可以找到对应的功能操作模块,对于用户来说免培训就能使用。

从上面几个部分的可行性分析得出,这次开发的垃圾分类网站在开发上面没有什么大问题,值得开发。

3.2 系统性能分析

(1)系统响应效率:页面响应时问应该在3秒以内,最长不能超过4秒,并支持至少10000人同时在线所有系统。

(2)界面简洁清晰:系统界面要求简单明了,容易操作,符合用户操作习惯。

(3)储存性高:因为垃圾分类网站中有很多的信息需要存储,因此对于系统的存储量有很大的要求,需要有一个强大的数据库的支持才能确保所有的信息都能安全稳定的进行存储。

(4)易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。

(5)稳定性需求:开发的垃圾分类网站 要求运行稳定,运行过程中无界面不清楚、字体模糊等现象。

3.3 系统功能分析

本垃圾分类网站主要包括三大功能模块,即用户功能模块和管理员功能模块、垃圾分类管理员功能模块。

(1)管理员模块:系统中的核心用户是管理员,管理员登录后,通过管理员功能来管理后台系统。主要功能有:首页、个人中心、用户管理、垃圾分类管理员管理、垃圾分类管理、垃圾类型管理、垃圾图谱管理、系统管理等功能。管理员用例图如图3-1所示。

图3-1 管理员用例图

(2)垃圾分类管理员:首页、个人中心、用户管理、垃圾分类管理员管理、垃圾分类管理、垃圾类型管理、垃圾图谱管理等功能,垃圾分类管理员如图3-2所示。

图3-2 垃圾分类管理员用例图

(3)用户前台:首页、垃圾分类、垃圾图谱、个人中心、后台管理等功能,用户前台如图3-3所示。

图3-3 用户前台用例图

3.4系统流程分析

3.4.1登录流程

登录模块主要满足管理员以及用户的权限登录,用户登录流程图如图3-4所示。

图3-4 登录流程图

3.4.2注册流程

未有账号的用户可进入注册界面进行注册操作,用户注册流程图如图3-5所示。

图3-5 注册流程图

3.4.3添加信息流程

用户在添加信息时,信息编号自动生成,系统会对添加的信息进行验证,验证通过则添加至数据库,添加信息成功,反之添加失败。添加信息流程如图3-6所示。

图3-6 添加信息流程图

3.4.4删除信息流程

用户可选择要删除的信息进行信息删除操作,在删除信息时系统提示是否确定删除信息,是则删除信息成功,系统数据库将信息进行删除。删除信息流程图如图3-7所示。

图3-7 删除信息流程图

4 系统设计

4.1系统概要设计

本垃圾分类网站选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在互联网上进行操作,只要用户能连网,任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图4-1所示:

图4-1 系统工作原理图

4.2系统结构设计

整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统整体的设计。

本垃圾分类网站结构图如图4-2所示。

图4-2 系统功能结构图

4.3系统顺序图设计

4.3.1登录模块顺序图

登录模块主要满足了管理员以及用户的权限登录,登录模块顺序图如图4-3所示。

图4-3 登录顺序图

4.3.2添加信息模块顺序图

管理员以及用户登录后均可进行添加信息操作,添加信息模块顺序图如图4-4所示。

图4-4 添加信息顺序图

4.4数据库设计

一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,要结合实际情况来对数据库进行针对性的开发设计[12]。

4.4.1数据库E-R图设计

本垃圾分类网站采用的是MYSQL数据库,数据存储快,因为垃圾分类网站 ,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确,系统的E-R图如下图所示:

1、用户信息实体图如图4-5所示: ######### 图4-5 用户信息实体图

2、垃圾分类信息实体图如图4-6所示:

图4-6 垃圾分类信息实体图

3、垃圾分类管理员信息实体图如图4-7所示:

图4-7 垃圾分类管理员信息实体图

4.4.2数据库表设计

将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。

allusers表:

序号字段名称字段类型大小允许为空最大长度备注
1idInt410
2username150255
3pwd150255
4cx150255
5addtimeDateTime819

lajifenlei表:

序号字段名称字段类型大小允许为空最大长度备注
1idInt410
2addtime150255
3lajimingcheng150255
4lajileixingDateTime8255
5guige150255
6shuliangDateTime8255
7tupian150255
8xiangqingDateTime8255

lajifenleiguanliyuan表:

序号字段名称字段类型大小允许为空最大长度备注
1idInt410
2addtime150255
3guanliyuanzhanghao150255
4guanliyuanxingmingDateTime8255
5mima150255
6xingbieDateTime8255
7nianling150255
8lianxidianhua150
9dianziyouxiang150

lajitupu表:

|序号|字段名称|字段类型|大小|允许为空|最大长度|备注| | - | :-: | :-: | :-: | :-: | :-: | :-: | |1|id|Int|4||10|| |2|addtime||150||255|| |4|lajimingcheng||150||255|| |5|lajileixing||150||255|| |6|tupu|DateTime|8||255|| |7|xiangqing|shangpinleixing|DateTime|8|255||

yonghu表:

|序号|字段名称|字段类型|大小|允许为空|最大长度|备注| | - | :-: | :-: | :-: | :-: | :-: | :-: | |1|id|Int|4||10|| |2|addtime||150||255|| |4|zhanghao||150||255|| |5|mima||150||255|| |6|xingming|DateTime|8||255|| |7|shouji|DateTime|||255|| |8|youxiang||||255|| |9|dizhi|shangpinleixing|DateTime|8|255||

第5章 系统详细设计

5.1用户前台功能模块

垃圾分类网站 ,在系统首页可以查看首页、垃圾分类、垃圾图谱、个人中心、后台管理等内容,如图5-1所示。

图5-1系统功能界面图

用户登录、用户注册,在用户注册页面可以填写账号、密码、姓名、手机、邮箱、地址等信息进行注册、登录,如图5-2所示。

图5-2用户登录、用户注册界面图

垃圾分类,在垃圾分类页面通过填写垃圾名称、垃圾类型、规格、数量、图片等信息进行提交,如图5-3所示。在垃圾图谱页面通过填写垃圾名称、垃圾类型、图谱等信息进行提交操作,如图5-4所示。

图5-3垃圾分类界面图

图5-4垃圾图谱界面图

5.2管理员功能模块

管理员登录,通过填写注册时输入的用户名、密码、角色进行登录,如图5-5所示。

图5-5管理员登录界面图

管理员登录进入垃圾分类网站可以查看首页、个人中心、用户管理、垃圾分类管理员管理、垃圾分类管理、垃圾类型管理、垃圾图谱管理、系统管理等信息。

用户管理,在用户管理页面中可以通过填写账号、密码、姓名、手机、邮箱、地址等内容进行修改、删除,如图5-6所示。还可以根据需要对垃圾分类管理员管理进行详情,修改或删除等详细操作,如图5-7所示。

图5-6用户管理界面图

图5-7垃圾分类管理员管理界面图

垃圾分类管理,在垃圾分类管理页面中可以填写垃圾名称、垃圾类型、规格、数量、图片等信息,并可根据需要对已有垃圾分类管理进行修改或删除等操作,如图5-8所示。

图5-8垃圾分类管理界面图

垃圾类型管理,在垃圾类型管理页面中可以填写类型等信息,并可根据需要对已有垃圾类型管理进行修改或删除等详细操作,如图5-9所示。

图5-9垃圾类型管理界面图

垃圾图谱管理,在垃圾图谱管理页面中可以查看垃圾名称、垃圾类型、图谱等内容,并且根据需要对已有垃圾图谱管理进行详情,修改或删除等详细操作,如图5-10所示。

图5-10垃圾图谱管理界面图

轮播图;该页面为轮播图管理界面。管理员可以在此页面进行首页轮播图的管理,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作,如图5-11所示。

图5-11轮播图管理界面图

5.3垃圾分类管理员功能模块

垃圾分类管理员登录进入垃圾分类网站可以查看首页、个人中心、用户管理、垃圾分类管理员管理、垃圾分类管理、垃圾类型管理、垃圾图谱管理等内容。

个人信息,在个人信息页面中通过填写管理员账号、管理员姓名、密码、性别、年龄、联系电话、电子邮箱等信息,还可以根据需要对个人信息进行修改、删除如图5-12所示。

图5-12个人信息界面图

LajifenleiguanliyuanServiceImpl.java
package com.service.impl;

import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.List;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.utils.PageUtils;
import com.utils.Query;


import com.dao.LajifenleiguanliyuanDao;
import com.entity.LajifenleiguanliyuanEntity;
import com.service.LajifenleiguanliyuanService;
import com.entity.vo.LajifenleiguanliyuanVO;
import com.entity.view.LajifenleiguanliyuanView;

@Service("lajifenleiguanliyuanService")
public class LajifenleiguanliyuanServiceImpl extends ServiceImpl<LajifenleiguanliyuanDao, LajifenleiguanliyuanEntity> implements LajifenleiguanliyuanService {
	
	
    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        Page<LajifenleiguanliyuanEntity> page = this.selectPage(
                new Query<LajifenleiguanliyuanEntity>(params).getPage(),
                new EntityWrapper<LajifenleiguanliyuanEntity>()
        );
        return new PageUtils(page);
    }
    
    @Override
	public PageUtils queryPage(Map<String, Object> params, Wrapper<LajifenleiguanliyuanEntity> wrapper) {
		  Page<LajifenleiguanliyuanView> page =new Query<LajifenleiguanliyuanView>(params).getPage();
	        page.setRecords(baseMapper.selectListView(page,wrapper));
	    	PageUtils pageUtil = new PageUtils(page);
	    	return pageUtil;
 	}
    
    @Override
	public List<LajifenleiguanliyuanVO> selectListVO(Wrapper<LajifenleiguanliyuanEntity> wrapper) {
 		return baseMapper.selectListVO(wrapper);
	}
	
	@Override
	public LajifenleiguanliyuanVO selectVO(Wrapper<LajifenleiguanliyuanEntity> wrapper) {
 		return baseMapper.selectVO(wrapper);
	}
	
	@Override
	public List<LajifenleiguanliyuanView> selectListView(Wrapper<LajifenleiguanliyuanEntity> wrapper) {
		return baseMapper.selectListView(wrapper);
	}

	@Override
	public LajifenleiguanliyuanView selectView(Wrapper<LajifenleiguanliyuanEntity> wrapper) {
		return baseMapper.selectView(wrapper);
	}

}

ConfigServiceImpl.java

package com.service.impl;


import java.util.Map;

import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.dao.ConfigDao;
import com.entity.ConfigEntity;
import com.entity.UserEntity;
import com.service.ConfigService;
import com.utils.PageUtils;
import com.utils.Query;


/**
 * 系统用户
 */
@Service("configService")
public class ConfigServiceImpl extends ServiceImpl<ConfigDao, ConfigEntity> implements ConfigService {
	@Override
	public PageUtils queryPage(Map<String, Object> params) {
		Page<ConfigEntity> page = this.selectPage(
                new Query<ConfigEntity>(params).getPage(),
                new EntityWrapper<ConfigEntity>()
        );
        return new PageUtils(page);
	}
}

BaiduUtil.java
package com.utils;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.json.JSONObject;


/**
* 类说明 : 
*/

public class BaiduUtil {
	
    /**
     * 根据经纬度获得省市区信息
     * @param lon 纬度
     * @param lat 经度
     * @param coordtype 经纬度坐标系
     * @return
     */
    public static Map<String, String> getCityByLonLat(String key, String lng, String lat) {
        String location = lat + "," + lng;
        try {
            //拼装url
            String url = "http://api.map.baidu.com/reverse_geocoding/v3/?ak="+key+"&output=json&coordtype=wgs84ll&location="+location;
            String result = HttpClientUtils.doGet(url);
            JSONObject o = new JSONObject(result);
            Map<String, String> area = new HashMap<>();
			area.put("province", o.getJSONObject("result").getJSONObject("addressComponent").getString("province"));
			area.put("city", o.getJSONObject("result").getJSONObject("addressComponent").getString("city"));
			area.put("district", o.getJSONObject("result").getJSONObject("addressComponent").getString("district"));
			area.put("street", o.getJSONObject("result").getJSONObject("addressComponent").getString("street"));
            return area;
        }catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
	     * 获取API访问token
	     * 该token有一定的有效期,需要自行管理,当失效时需重新获取.
	     * @param ak - 百度云官网获取的 API Key
	     * @param sk - 百度云官网获取的 Securet Key
	     * @return assess_token
	     */
    public static String getAuth(String ak, String sk) {
        // 获取token地址
        String authHost = "https://aip.baidubce.com/oauth/2.0/token?";
        String getAccessTokenUrl = authHost
                // 1. grant_type为固定参数
                + "grant_type=client_credentials"
                // 2. 官网获取的 API Key
                + "&client_id=" + ak
                // 3. 官网获取的 Secret Key
                + "&client_secret=" + sk;
        try {
            URL realUrl = new URL(getAccessTokenUrl);
            // 打开和URL之间的连接
            HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
            connection.setRequestMethod("GET");
            connection.connect();
            // 获取所有响应头字段
            Map<String, List<String>> map = connection.getHeaderFields();
            // 遍历所有的响应头字段
            for (String key : map.keySet()) {
                System.err.println(key + "--->" + map.get(key));
            }
            // 定义 BufferedReader输入流来读取URL的响应
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String result = "";
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
            /**
             * 返回结果示例
             */
            System.err.println("result:" + result);
            org.json.JSONObject jsonObject = new org.json.JSONObject(result);
            String access_token = jsonObject.getString("access_token");
            return access_token;
        } catch (Exception e) {
            System.err.printf("获取token失败!");
            e.printStackTrace(System.err);
        }
        return null;
    }

}

const menu = {
    list() {
        return [{"backMenu":[{"child":[{"buttons":["查看"],"menu":"用户","menuJump":"列表","tableName":"yonghu"}],"menu":"用户管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"垃圾分类管理员","menuJump":"列表","tableName":"lajifenleiguanliyuan"}],"menu":"垃圾分类管理员管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"垃圾分类","menuJump":"列表","tableName":"lajifenlei"}],"menu":"垃圾分类管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"垃圾类型","menuJump":"列表","tableName":"lajileixing"}],"menu":"垃圾类型管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"垃圾图谱","menuJump":"列表","tableName":"lajitupu"}],"menu":"垃圾图谱管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"轮播图管理","tableName":"config"}],"menu":"系统管理"}],"frontMenu":[{"child":[{"buttons":["查看"],"menu":"垃圾分类列表","menuJump":"列表","tableName":"lajifenlei"}],"menu":"垃圾分类模块"},{"child":[{"buttons":["查看"],"menu":"垃圾图谱列表","menuJump":"列表","tableName":"lajitupu"}],"menu":"垃圾图谱模块"}],"hasBackLogin":"是","hasBackRegister":"否","hasFrontLogin":"否","hasFrontRegister":"否","roleName":"管理员","tableName":"users"},{"backMenu":[],"frontMenu":[{"child":[{"buttons":["查看"],"menu":"垃圾分类列表","menuJump":"列表","tableName":"lajifenlei"}],"menu":"垃圾分类模块"},{"child":[{"buttons":["查看"],"menu":"垃圾图谱列表","menuJump":"列表","tableName":"lajitupu"}],"menu":"垃圾图谱模块"}],"hasBackLogin":"否","hasBackRegister":"否","hasFrontLogin":"是","hasFrontRegister":"是","roleName":"用户","tableName":"yonghu"},{"backMenu":[{"child":[{"buttons":["查看"],"menu":"用户","menuJump":"列表","tableName":"yonghu"}],"menu":"用户管理"},{"child":[{"buttons":["查看"],"menu":"垃圾分类管理员","menuJump":"列表","tableName":"lajifenleiguanliyuan"}],"menu":"垃圾分类管理员管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"垃圾分类","menuJump":"列表","tableName":"lajifenlei"}],"menu":"垃圾分类管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"垃圾类型","menuJump":"列表","tableName":"lajileixing"}],"menu":"垃圾类型管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"垃圾图谱","menuJump":"列表","tableName":"lajitupu"}],"menu":"垃圾图谱管理"}],"frontMenu":[{"child":[{"buttons":["查看"],"menu":"垃圾分类列表","menuJump":"列表","tableName":"lajifenlei"}],"menu":"垃圾分类模块"},{"child":[{"buttons":["查看"],"menu":"垃圾图谱列表","menuJump":"列表","tableName":"lajitupu"}],"menu":"垃圾图谱模块"}],"hasBackLogin":"是","hasBackRegister":"是","hasFrontLogin":"否","hasFrontRegister":"否","roleName":"垃圾分类管理员","tableName":"lajifenleiguanliyuan"}]
    }
}
export default menu;

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

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

相关文章

集成测试怎么做?

任何产品想要长期保持高质量运行&#xff0c;集成测试正是实现这一目标必不可少的工具。 本文重点介绍集成测试实现的流程&#xff0c;而非测试工具本身。我们的目的是聚焦于创建测试过程中你可能遇到的问题&#xff0c;以便你能自主地推进工作。 缺陷的成本 细节决定成败&a…

黑神话孙悟空:超燃视频混剪制作

黑神话孙悟空&#xff0c;这个名字如今在游戏界乃至整个网络世界都如同一颗璀璨的超新星&#xff0c;光芒万丈。 它的热度持续飙升&#xff0c;只要与这个话题相关联&#xff0c;仿佛就拥有了吸引大量关注的魔力。 对于那些不太懂自媒体运营的小伙伴来说&#xff0c;如何在这股…

回顾我的亚马逊云科技四大认证之旅:从零到认证高手的成长历程

前言 在2022年经过数个月的努力&#xff0c;我成功获得了三个AWS助理级认证&#xff0c;并在2024年初取得了最新推出的助理级认证。趁着备考时的学习内容和心得体会还历历在目&#xff0c;我想借此机会和大家分享一下这段不平凡的旅程。 助理级认证是什么 引用自&#xff1a…

培训第三十四天(初步了解Docker与套接字的应用)

上午 回顾 1、主从复制&#xff08;高可用&#xff09; 2、传统的主从复制 3、gtids事务型的主从复制 4、注意 1&#xff09;server_id唯一 2&#xff09;8.X版本需要get_ssl_pub_key 3&#xff09;5.X不需要 4&#xff09;change master to 5&#xff09;stop | sta…

InternLM2_PracticalCamp_L2_task3_LMDeploy量化部署进阶实践

1 配置LMDeploy环境 1.1 InternStudio开发机创建与环境搭建 点选开发机&#xff0c;自拟一个开发机名称&#xff0c;选择Cuda12.2-conda镜像。 我们要运行参数量为7B的InternLM2.5&#xff0c;由InternLM2.5的码仓查询InternLM2.5-7b-chat的config.json文件可知&#xff0c;…

vue+echarts:echarts地图页面跳转

在setOption的平级写点击事件&#xff0c;给chart添加click监听 getmapChart.setOption({......})//和数据对应即可 //点击区域实现页面跳转getmapChart.on(click,function(params){// console.log(params);switch(params.name){case "xxxx":top.location.href"…

PHP之 通过ecc,sm2加密证书实现 sm2国密 加密

SM2 为非对称加密&#xff0c;基于 ECC。该算法已公开。由于该算法基于 ECC&#xff0c;故其签名速度与秘钥生成速度都快于 RSA。ECC 256 位&#xff08;SM2 采用的就是 ECC 256 位的一种&#xff09;安全强度比 RSA 2048 位高&#xff0c;但运算速度快于 RSA。 openssl_pkey_…

信息学奥赛初赛天天练-72-NOIP2016普及组-基础题3-无向图、简单无向图、自环、平行边、顶点的度、握手定理、递归

NOIP 2016 普及组 基础题3 5 以下不是存储设备的是( ) A 光盘 B 磁盘 C 固态硬盘 D 鼠标 6 如果开始时计算机处于小写输入状态&#xff0c;现在有一只小老鼠反复按照 CapsLock、 字母键 A、字母键 S、字母键 D、字母键 F 的顺序循环按键&#xff0c;即 CapsLock、A、S、D、F、…

10秒记住C语言运算优先级

C语言中有10类运算符号&#xff1a;算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符 你是否正在为记住C语言运算优先级而烦恼&#xff1f; C语言中每种同类运算符都有内部的运算符优先级&…

iOS18 Beta7 最终测试版推送:苹果的又一次技术飞跃

苹果公司以其一贯的创新精神和对完美的追求&#xff0c;再次引领了科技界的新潮流。今天&#xff0c;我们聚焦于苹果最新推送的iOS18 Beta7最终测试版&#xff0c;这一版本不仅是苹果软件更新的里程碑&#xff0c;更是用户体验的一次重大升级。 最终测试版的亮相 在众多果粉的…

《黑神话.悟空》与人工智能AI重塑经典与探索未来的交织

"近期我偶然邂逅了一个极为出色的人工智能学习平台&#xff0c;它不仅内容深入浅出&#xff0c;讲解方式还风趣幽默&#xff0c;让人学习起来既轻松又高效。如此宝藏资源&#xff0c;我迫不及待想要与各位共享。即刻点击让我们一起进入这个精彩纷呈的学习网站吧&#xff0…

2024年最顶尖的9大企业薪酬绩效管理系统

国内外主流的绩效管理系统软件有&#xff1a;Moka&#xff1b;2. BambooHR&#xff1b;3. 飞书绩效&#xff1b;4. 北森&#xff1b;5. Peoplebox&#xff1b;6. Tita绩效宝&#xff1b;7. 泛微人事管理&#xff1b;8. Trakstar Perform&#xff1b;9. 红海eHR。 在现代企业环境…

养宠人崩溃瞬间——猫毛满天飞,换毛季宠物掉毛该如何清理?

我家猫最近换毛季&#xff0c;每天随便都能用梳子梳下来几个大饼&#xff0c;只要它所到之处猫毛满天飞&#xff0c;根本扫不完。衣柜里的衣服也不能幸免&#xff0c;深色衣服已经被猫毛占据&#xff0c;直接变了一种颜色。想当初它来家里的时候是冬天&#xff0c;我还惊讶这只…

使用Obsidian实现Anki快速制卡

文章目录 前言准备双双启用遇到问题查看是什么问题解决问题 开始使用使用前的一些设置快速制卡 前言 我现在使用 Anki 的同时也使用 Obsidian&#xff0c;正好可以通过插件来让这两个十分好用的软件实现联动。 在 Obsidian 中实现 Anki 的快速制卡。 准备 首先要在这两个软…

Cocos Creator通用关卡编辑器UniLevelEditor

这是一款通用的关卡编辑器&#xff0c;可以帮助你快速制作不同类型游戏的关卡内容。不需要每个游戏都特别制作对应的关卡编辑器了。 注&#xff1a;该商品为Cocos项目源码&#xff0c;不是插件&#xff0c;开发语言为TypeScript。 目前仅支持在Cocos Creator 2.x中运行该项目&a…

Voilà的安装与介绍

‌Voil‌是一个工具,能够将Jupyter Notebooks转换成交互式网页,允许代码单元运行、ipywidgets交互,并且方便分享。Voil的主要功能包括: -‌ 转换notebook‌:Voil可以将Jupyter notebook转换成一个静态的网页,包括代码单元、Markdown单元、输出结果以及交互式组件,同时保…

中国红树林动态分布数据(1990-2020年)

红树林位于热带和亚热带地区的沿海过渡地带&#xff0c;具有重要的生态功能和社会经济价值。同时红树林是热带、亚热带海岸带海陆交错区生产能力最高的海洋生态系统之一&#xff0c;在净化海水、防风消浪、维持生物多样性、固碳储碳等方面发挥着极为重要的作用。 该数据集利用了…

2024年高教社杯数学建模国赛E题思路解析+代码+论文

2024年高教社杯全国大学生数学建模竞赛&#xff08;以下简称国赛&#xff09;将于9月5日晚6时正式开始。 下文包含&#xff1a;2024国赛思路解析​、国赛参赛时间及规则信息说明、好用的数模技巧及如何备战数学建模竞赛 C君将会第一时间发布选题建议、所有题目的思路解析、相…

网络通信tcp

管道通信与数据复制管道通信确实涉及数据复制的过程&#xff0c;这是由于管道的工作原理所决定的。下面详细解释一下&#xff1a;管道通信的数据复制 1. 写入管道&#xff1a;•当一个进程通过 write() 系统调用向管道写入数据时&#xff0c;数据实际上是从进程的用户空间复制…

【blender】一个汉堡包

第一次建模&#xff0c;哈哈汉堡包样式大差不差。至于这么做的&#xff0c;那么多快捷键完蛋&#xff0c;忘得差不多了&#xff01; 官网地址&#xff1a;https://www.blender.org/download/ 我下载的是4.2版本