【Java EE】从零开始写项目【总结】

IntelliJ IDE v2021.2:重构从 Java EE 自动迁移到 Jakarta EE、Spring Boot 项目的共享索引等 IntelliJ IDEA 2021.2 EAP 6现已推出! 在 Beta 版之前的最后一个 EAP 中,新版本专注于一些特定于框架的更新。其中包括新的重构以简化和加速 Java EE 用法向 Jakarta EE 的迁移、自动下载新 Spring Boot 项目的共享索引、微服务图等。此版本还可以方便地将保存操作组合在一个地方,并为图表提供重新设计的结构视图。 点击下载IntelliJ IDEA 2021最新版本 让我们了解更多有关新功能的信息。 框架和技术 自动下载新 Spring Boo. 阅读详情

从零开发项目概述

最近这一直在复习数据结构和算法,也就是前面发出去的排序算法八大基础排序总结,Java实现单向链表,栈和队列就是这么简单,十道简单算法题等等…

被虐得不要不要的,即使是非常简单有时候绕半天,想不明白。

本来这篇博文是想留到我最后Java基础复习完再写出来的,鉴于公众号有的同学想看看邮箱登陆的案例,想看看Java开发后台是怎么的,于是我就提前写了这篇博文

这个项目是我自己手写的第一个SSM项目(毕竟学了当然得搞点事情,对吧),是上年写的小东西。当然了,现在回过头去看这个项目是有很多的不足的,仅供参考。用的也不是新技术,只是把我之前当时所学的一些东西做一个总结…如果想学新知识的同学看到这里就可以留步啦~

所以说,你可能会看到比较旧的技术,写得不好的地方都会有~如果是写过项目的同学而言,这个仅仅是一个Demo。对于没写过项目的同学可以适当的参考一下,因为用的是非常简单的技术,都是耳熟能详的技术,不会有什么难懂的地方~

PS:希望各位大佬不要攻击它,我没有做任何的安全措施。即使留了评论的功能,XSS攻击防范也没做,请手下留情啊~

地址:

编写记录:

从零开始写项目第一篇【搭建环境】

从零开始写项目第二篇【登陆注册、聊天、收藏夹模块】

从零开始写项目第三篇【在线聊天和个人收藏夹】

从零开始写项目第四篇【搭建Linux环境】

从零开始写项目第五篇【评论功能、备忘录】

从零开始写项目终极【维护网站、修复Bug】

一、功能介绍

巴巴拉拉地说了一大堆东西,我们来看一下这个项目有什么功能~

这是首页,会根据当地给出三天的天气预报:

很简单的注册页面,通过邮箱来进行注册~

2018年3月30日15:51:23,好吧,写这篇博文的时候也出错了…..

org.springframework.mail.MailAuthenticationException: Authentication failed

我怀疑是授权发送邮箱的密码错了(过时),于是我去更新了一下,果然就行了~

此时点击注册,就会要邮箱校验了~

去自己的邮箱查看一下邮件:

点击校验它即可完成注册(如果不校验的话,那么是不允许登陆的):

该项目用Shiro做了权限认证的,如果没在登陆的状态下点击以下的菜单都会跳转到登陆页面~:


网站说明:

这个网站的功能并不复杂,开发的功能都是为了方便使用而已。

  • 一、个人收藏夹:将常用的网站添加进去,值得注意的地方就是:url(网址)最好是从浏览器复制下来,这是最方便也是最安全的做法
  • 二、个人备忘录:添加个人备忘录,设置好时间、在邮件发送出去之前都能够修改时间

发送邮件好像会有点延迟~~~~


接下来是个人收藏夹了,添加一些常用的网址进去,并给它命名,当输入命名部分的字符时,即会提示:

用键盘上下键选中按回车即可跳转到对应的页面了~

二、技术介绍

网站用到的技术:

  • 一、全站页面布局:前端是使用Bootstrap来进行布局的、背景是使用了GitHub的一个开源项目:particles-js。导航条来源于一个国外网站:http://toolofna.com/
  • 二、首页:天气预报功能来源于高德地图API和和风天气API组合而成,能够查看当前IP地址所在地的近三日天气
  • 三、个人收藏夹:使用了Elasticsearch全文搜索引擎工具。
  • 四、在线聊天:使用了GoEasy的服务推送和jquery.barrager.js构建弹幕。目前该功能并未完善,敬请期待。
  • 五、注册和登陆:使用了BootstrapValidation进行表单校验、JavaMail发送邮件的功能、Gif动态验证码
  • 六、个人备忘录:使用了Quartz任务调度工具来定时发送邮件

总概要:

  •    1. Maven构建项目
  •    2. 使用Mysql数据库
  •    3. Tomcat作用应用服务器
  •    4. Dao层采用Mybatis,Controller层采用SpringMVC,Spring对Mybatis和SpringMVC进行整合和事务管理
  •    5. Shiro权限管理框架控制登陆以及对个人收藏夹、在线聊天功能进行认证的管理
  •    6. 使用FreeMarker来渲染页面和配置发送邮箱的模版
  •    7. 使用Quartz和Spring整合,完成个人备忘录的功能。
  •    8. 使用Nginx作为代理服务器,对静态资源处理,代理转发

可以看到的是,网站的功能并不多,就几个小模块,我就创建了三张表而已:

三、谈谈编写过程

其实所有的初学者都一样:怎么使用Java编写一个网站?数据库设计感觉好难,设计错了就很麻烦了。Web前端好烦啊,自己写的页面不好看。这个功能感觉好难实现哦,应该是挺高深的技术吧。我的基础还不够扎实,等我学好了再写吧,等等等..就一直有想写网站的念头,但一直没开始动手。

上面的问题我都有想过,不过我还是写了这么一个小东西….

当时写的练手项目都是视频教程给出的题目,比如我之前发过的:移动商城项目总结和纳税服务系统总结,jar包或者maven的坐标都是有给出来的,项目的前台页面和数据库标也大都是设计好的,我只需要补补填填写Java代码。而这一次,前端页面,数据库设计,Maven坐标等等全由自己包办

从开始到编写结束大概花了我一个月的时间,期间要去上课呀,回家呀,一些琐事呀等等才拖了那么久。如果自己从来没写过项目的同学建议自己折腾一下搞一个,期间能学到很多很多东西的。也不要怕自己写得不好(只要像我一样不要脸,不也将这么一个小东西发到公众号上来,发到其他的博客平台了么)

那么我自己折腾这么一个小玩意能学到什么了呢?

3.1搭建环境收获

  • 在搭建环境的时候,不要觉得最新的版本就是牛逼,我要用最新的,不做过时的男人!我当时就是撘环境是用Spring5.0,Mysql驱动包6.x,jdk1.8,能用最新就用最新的,觉得自己贼牛逼。然后撘完项目就启不动了~~~
  • 其实没必要用最新的,最新的一般都会有bug,没bug的也不一定兼容其他的版本。要知道,Spring可不单单有Spring的东西,还依赖很多其他的jar包的。同样Mysql用最新的驱动包,逆向工程时也不好使(我在SegementFault已经见过几次跟我一样遇到的坑)
  • 一般最新的东西资料都挺少的,除了官方文档,出了什么问题都只能自己解决了。较老的版本就不一样了,很多人都会遇到的问题,解决方案也会相当多~

当时我在图书馆撘了一个晚上,得出的教训:

3.2登陆与注册收获

登陆与注册这个功能只要学过JavaWeb基础的同学,肯定做过。反正我是做了很多很多次的了,学Servlet做一次,学JSP做一次,学AJAX做一次,学xxx系统做一次,学XXX商城做一次。反正每次都会有新的东西补充上去

一开始我本来想做的是可以使用微信登陆,也可以使用账户(邮箱)登陆,也可以使用短信登陆的。

后来发现微信登陆要企业认证,做不了。短信登陆要钱,不想给。

所以最后就只有用邮箱登陆了~~~当然了,该有的基本功能是有的:

  • 加密密码
  • 前台校验和后台校验参数
  • 忘记密码,记住我功能
  • 验证码

由于之前是简单学过Shiro的,当时觉得Shiro做权限很方便,于是自己也想体验一把~实际上用起来并没有我当时学的时候那么简单!

在Shiro这一块也耽误了不少时间,因为我当时想的是使用AJAX来提交,如果正确则跳转到首页,如果密码(参数..)等错误就返回JSON给用户一个友好的提示。可是,Shiro的表单认证起默认返回的是一个页面,在这里就卡住了挺久的(有的时候没bug,有的时候又有bug),百思不得其解…最后查阅了很多资料才将FormAuthenticationFilter改写好,Shiro很多东西都是要自己重写来进行控制的,当时理解后画的流程图:

Shiro的“记住我”功能本来以为是很好用的,实则也挺鸡肋的..当时我做的记录:

反正Shiro给我的感觉就是很多东西都要自己来重写,控制,而如果是小范围使用我觉得自己写url控制会方便。也可能是我的学习姿势不对~

在登陆注册模块期间也自己去找了不少资料。

  • 数据库设计上也是参考了网上和自己做了些许修改
  • JavaMail我之前是没接触过的
  • BootStrapValidation也是看中了就用,
  • 折腾Shiro几天就更不用说了。

所以说,未必要使用自己熟悉的东西,只要想实现一些普通、你见过的功能,总会有方案可以参考。

3.3个人收藏夹收获

这个自动补全功能是我一开始想要做自己网站的时候想做的。因为我习惯了使用键盘去找文件,去找东西。

比如,在windows下,我下了一个rolan,将常用的软件丢进去,输入一些关键字即提示我,然后我通过键盘上下选择就可以打开软件了,十分方便

在编写之前,我学过Lucene的相关知识,知道Lucene是全文搜索索引的始祖(没做过相关案例)【参考博文:Lucene就是这么简单】,后来知道Solr和Elasticsearch在企业上是用得挺火的,而Elasticsearch又是各种火热,各种吹(哈哈哈,无贬义,是挺好用的)。

于是我就花了几天从零开始学Elasticsearch,当时参考的博主给出的是2.3.3版本,我也觉得没什么,就使用了。那是最新是5.x~就有了后来的博文:【Elasticsearch就是这么简单】

Elasticsearch遇到很多的问题都得去翻英文的,所以可以访问外网也挺重要的~

我英语也不咋地,就慢慢看看,弄个Chrome插件翻译呗,事情总得解决,也就这么成长的~

3.4搭建Linux环境收获

在之前只会Linux一些非常简单的命令,ls cd vi这些,用得少就忘记了,于是又得重新去回顾一下Linux(这个学期也开了Linux的课,我打算过一阵再总结Linux的常用命令和相关要点,敬请期待~)

花了点点钱买了台云服务器(学生有优惠就10块一个月),我也建议是在校的学生也可以买来自己玩玩,熟悉一下Linux命令,还有很多软件都在Linux下才更好地支持(例如:Elasticsearch,Nginx),尤其Elasticsearch在windows下装它简直麻烦!

到了Linux阶段,我也去学了下Nginx了。在没学Nginx时我就经常听说过这个HTTP服务器了,但一直不知道它是干嘛用的。它的最常见作用就两个:

  • 处理静态资源
  • 动态资源转发到Web服务器(Tomcat)

学学Nginx的配置文件相关知识,是如何配置的,配置有什么用~就可以使用了

3.5评论功能和备忘录收获

评论功能在数据库设计上也有好几种:

  • 将回复和评论都统一当成是评论,能够使用@XXX来当做是回复,类似与IOS知乎的评论【此做法是最简单的】
  • 将回复和评论分开,要么单表就多增加一个父属性,要么就分两张表【稍微复杂,一个评论可以对应多个回复】
  • 实现评论与回复“盖楼”的方式,这种就是网易的评论【此种是最复杂的】

我做的只是一个留言的功能,就直接使用第一种了~

对于备忘录就得用到Quartz时间调度框架,之前接触过,但用的使用还是出现了Bug

  • 在Junit测试Quartz没有反应
  • Spring不能注入对象进Quartz的Job类中

如果业务简单的话,下次也想玩玩Spring自带的任务调度~

四、最后

上面简要地介绍了我的小项目的功能和编写过程,更详细的业务得去看我下面的博文和源码了~也希望大家能够有所收获,自己动手做一个小项目~

现在看来很多没有写成规范(返回JSON、JavaScript模块化)等等,但毕竟是自己学编程的成长经历,看回以前的代码总会有这种感觉。我短时间内也不做重构了,学Java基础去~

后面的博文几乎都是Java基础或算法(少量)了,希望大家多多支持哈,在校的日子我会尽量保持日更的~

如果文章有错的地方欢迎指正,大家互相交流。习惯在微信看技术文章,想要获取更多的Java资源的同学,可以关注微信公众号:Java3y

Java EE架构概述 主要内容 分布式多层应用 Java EE容器 Web Service支持 打包应用 开发角色 Java EE APIs 引子 Java Platform, Enterprise Edition(Java EE)为设计、开发、装配和部署企业应用程序提供了一个基于组件的方法 Java EE平台提供了: 一个多层分布式应用模型 可复用组件模型 一个统一的安全模型 灵活的事务控制 Web Serv... 阅读详情

相关推荐

自己写的小项目

,包含富文本,上传下载,分页,shiro,echar,批量删除,添加;和常用到的技术

手把手教你写项目

​前言 这个专题来说说基于vue的element组件封装,最终的目的是整理一个基于vue、element完整的前端项目。希望各位同学看了之后能有所收获,能够自己实现一个完整的实战项目。 项目地址 1、初始化环境 node.js -v v8.9.3 npm -v 6.1.0 yarn -v 1.7.0 Vue -v 2.5.2 全局安装vue-cli vue 2、初始化项目 新建空文件夹,vsCode打开,在终端输入命令行 vue...

玖尘的博客 3615

西门子1200与FANUC机器人Profinet通讯

近期在做发那科FANUC的通讯,会吧CC-LINK、Profibus-DP、Profinet I/O、DeviceNet、EtherNet/IP这些常用通讯做成文档发上来,大家喜欢的话可以关注 注:做对应的通讯,在机器人控制柜都需要安装对应的板卡以及软件功能 PLC项目已经归档,只需要恢复就可以看到。对应Profinet通讯的GSD文件也都在博文最后有连接 机器人柜子:R-30IB Mate 机器人主体:M-10IA 12 一、硬件介绍 机器人Profinet I/O通讯板卡:...

七兔自习室 2万+

从零开始写项目【总结】

从零开发项目概述最近这一直在复习数据结构和算法,也就是前面发出去的排序算法八大基础排序总结,Java实现单向链表,栈和队列就是这么简单,十道简单算法题等等…被虐得不要不要...

3y 1134

Cgroup对进程所占用的CPU与内存资源同时进行限制的测试

测试环境:Ubuntu。处理器数量:1CPU。内存大小:2048MB。 以下是测试程序mem_cpu_test.c的代码。 将mem_cpu_test.c编译为可以运行的程序mem_cpu_test。 运行程序,并用top命令查看mem_cpu_test所占用的系统资源情况,可以看到,mem_cpu_test使用了50%左右的内存资源,也就是1000MB左右,并占用了接近全部的CPU资源。 关闭以上的程序后,在Cgroup子系统memory和cpu下分别创建进程组test1和test2。 并设置tes

qq_44998067的博客 1153

安装matlab_Matlab+yalmip+cplex安装教程及算例

数学建模/科研学习推荐学习软件:Matlab+yalmip+cplex安装教程及算例其实绝大多数本科生都是在用Matlab和LINGO求解优化问题,Matlab可以求解一般优化问题,但是当优化问题规模比较大或者在应对一些非线性问题时候,Matlab会出现求解时间长,求解效率低,甚至难以求解等问题。Matlab+yalmip+cplex是Matlab通过调用商业软件cplex求解,求解时间短,这里简...

weixin_28939637的博客 5006

从0开始写一个Springboot的简单项目

写一个TestController类,然后标上@RestController注解(这个注解相当于@Responsebody和@Controller的结合),其中@Controller注解标识这个类是一个用来处理请求的Controller类,@Responsebody的作用是将方法的返回值,以特定的格式写入到response的body区域,进而将数据返回给客户端(这个返回值会直接把返回的数据以json格式返回给客户端)。那么这个表相对应的实体类User,User的属性也有id,name,age。

qq_30166465的博客 725

等保三级-MySQL 安全加固实战指南

本文详细介绍了MySQL数据库在等保三级要求下的安全加固实战指南,涵盖身份鉴别、访问控制、安全审计、网络传输安全、入侵防范和数据完整性等关键领域。通过具体配置示例和实战经验,帮助用户有效提升MySQL数据库的安全防护能力,满足等保三级合规要求。

weixin_29197835的博客 183

自己写项目才是最快的

要想进步快,唯一的办法就是自己写很多项目,因为人是很懒的,只有你自己独立负责一款项目的开发时才是最快的。

Wchenyang的博客 403

DAX Studio--导出PowerBi数据---(不使用复制表如何快速导出csv文件 / 如何导出百万级/千万级乃至亿级的数据量)多图预警!

多图预警! 1、打开Dax 点击Connect 2、在这里选择正在打开的PowerBi文件,点击Contect 3、选择导出方式--File F、输入指令(输入 EVALUATE ' )单引号可以进行快速提示 5、点击Run 6、选择文件路径,以及保存类型等(一般情况下,我们常用的类型是 txt 或者 第一种 UTF-8 的csv 文件),点击保存即可,稍等片刻,导出完成! 7、导出完成,我这里总计是39W 行的数据量,约20+ 秒完成 ...

STR_Liang的博客 8158

ChatBI告别“NL2SQL依赖症”!从准确率50%到90%,3大技术路线+4个企业案例拆解核心玩法

摘要: ChatBI通过自然语言交互实现数据民主化,其核心是“语义理解+数据执行+知识沉淀”的全链路能力,而非单一的NL2SQL技术。行业采用三大技术路线提升准确率:专有知识库(提升30%)、指标标签语义层(准确率85%)、JSON中间层(多轮对话提升25%)。数据执行方案包括NL2SQL、NL2API等,需结合场景选择。企业落地需解决四大痛点:跨表查询准确率低(引入拓扑图)、模糊查询(用户干预机制)、响应慢(预计算缓存)、多轮对话(上下文池)。Spring AI Alibaba提供轻量级集成方案,助力企业

weixin_52610848的博客 1656

写项目经验总结

第一次写项目 这是我第一次写项目,通过这次写项目,我收获了不少的经验。现在是大一下学期,我们就开始着手项目了,相信大学毕业之后,一定会拥有丰富的项目经验。 通过这次写项目,我发现一个项目的构架都是后端人员负责的,所以,一个项目能否运行成功关键还是在于后端。但是仅仅有后端也是不行的,因为与用户交互的那些静态页面都是由前端开发人员来写的。所以可以这么说,前端是项目的肉体,是用户体验的基础;而后端则是项目的灵魂,是一个项目最终开发出来是否能长期使用,维护,功能实现以及项目的功能的实现的关键,这也是写这个项目的意义

qq_63651140的博客 712

69页完整版智慧港口综合解决方案

智慧港口需求4港机远程操控等自动化改造需求自动化码头AGV无线通信及专用视频系统需求安全生产视频监控类需求港机RCMS及设备管理需求岸边智能理货码头三维全景应用智慧港口解决方案5自动化码头AGV/跨运车/无人集卡无线接入港机远控视觉及冗余无线通信视觉集卡防吊起系统集装箱码头岸边智能理货港机RCMS系统无线接入港机智能化管理(无线高清视频监控、一键报警、远程抄表系统)港口拖轮无线接入岸边溢油监测系统TD-LTE覆盖及业务终端接入港口生产管理系统港口可视化集群调度港口GiNMS综合网络设备智能管理全球作业效率最

zuoan1993的博客 2129

从零开始写项目第一项-项目搭建

spring+springmvc+hibernate+mysql+bootstrap从头开始做

王宜超的博客 948

26版SPSS操作教程(高级教程第十章)

#大道之行,在于坚持 #本期内容:二分类Logistic回归模型 #由于导师最近布置了学习SPSS这款软件的任务,因此想来平台和大家一起交流下学习经验,这期推送内容接上一次高级教程第九章的学习笔记,希望能得到一些指正和帮助~

你好! 1599

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java EE与Jakarta EE区别

官网介绍如下Java Platform, Enterprise Edition (Java EE) 是社区驱动的企业软件标准。Java EE 是利用开发的,业界专家、商业组织和开源组织、Java 用户组以及数不清的个人为此做出了巨大贡献。每个版本都集成了符合业界需求的新特性,提高了应用可移植性,提高了开发人员的工作效率。此链接列举了 javaee 规范实现的组件,因为此规范主要针对 web server,可以发现都是 web server。

zlpzlpzyd的专栏 2530

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java EE基础之Web项目一

文章目录 1.打开eclipse,选择图中画圈的标志 2.选择图中画圈的标志,点击open,就能切换成Java EE了 Dynamic Web project :动态网页工程 3.file→new→Dynamic Web project → 在Project name的右边填写项目名→点击finish 最终效果图: 4.打开试图(view) Window → Show View →Other...

William_fang的博客 1102

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Java EE 7 with Angular 项目教程

Java EE 7 with Angular 项目教程 1. 项目介绍 Java EE 7 with Angular 是一个开源项目,旨在展示如何使用 Java EE 7 和 Angular JS 构建一个简单的 Web 应用程序。该项目结合了 Java EE 7 的后端服务和 Angular JS 的前端框架,提供了一个完整的开发示例。通过这个项目,开发者可以学习如何将 Java EE 7 的强...

gitblog_00528的博客 1081

Java EE规范

Java EE的全称是Java Platform, Enterprise Edition。早期Java EE也被称为J2EE,即Java 2 Platform Enterprise Edition的缩写。从J2EE1.5以后,就改名成为Java EE。一般来说,企业级应用具备这些特征:1、数据量特别大;2、用户特别多;3、性能要求高;4、安全性要求高;5、生命周期长。企业级应用就要考虑数据存储和查询的问题、系统訪问快慢即性能问题、怎样使用事务保证安全的问题、怎样使系统可扩展易维护的问题。

skysukai的博客 1639

Java EE 导读

在 Java EE 中,主要是对各种框架的学习,及如何把这些框架应用在企业中来实现一些 web 开发

优快云_queen_wang的博客 981

Java SE到Java EE的学习转换

我接触java的学习是从Java SE开始的,SE部分主要是用来做桌面程序的开发,在现在的主流趋势中已经渐渐的退出了中心舞台。现在人们对网络的认知和通过网络接收信息大部分都是碎片化的,因此各种网页就成为了我们最频繁的上网途径,因此Java EE热了。我想就此分享一下我从SE的学习到EE的学习的转换历程 **不同之处** Java SE是纯java语言的学习,可以通过它进行java桌面程序的开发等。...

weixin_44582716的博客 3283

「Java EE开发指南」如何用MyEclipse创建一个WEB项目?(一)

本教程将为大家介绍如何使用MyEclipse创建一个WEB项目,欢迎下载最新版IDE体验!

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 1186
上一篇: 从零开始写项目终极【维护网站、修复Bug】
下一篇: 泛型就这么简单
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值