- 博客(84)
- 资源 (1)
- 收藏
- 关注
原创 前端构建工具~第三方模块Gulp
第三方模块Gulp基于node平台开发的前端构建工具,将机械化操作编写成任务,想要执行机械化操作时,执行一个命令行任务就能自动执行了。用机器代替手工,提高开发效率。gulp能做什么?1.项目上线HTML,CSS,JS文件压缩2.语法转换(less,es6)3.公共文件抽离4.修改浏览器自动刷新gulp使用1.使用npm install gulp 下载gulp库文件2.在项目根目录下建立gulpfile.js文件3.重构项目的文件夹结构 用src目录放置源代码文件 用dist
2022-05-07 14:22:57
295
原创 关于前端html的一些题
1.请说明Html 布局元素的分类有哪些?并描述每种布局元素的应用场景题解:一.分类1.内联元素:span ,a,b,strong,i,em,br,input,textarea,本身属性为 display:inline;和其他行内元素从左到右在一行显示,不可以直接控制宽度,高度等其他相关css属性,但是可以直接设置内外边距的左右值宽高是由本身内容大小决定的(文字,图片等)只能容纳文本或者其他行内元素,不能嵌套块级元素2.块级元素:div,h1~h6,hr,menu,ol,ul,li,dl,
2020-11-21 23:01:51
893
原创 路由(Router)
路由(Router)Router 主要用来描述请求 URL 和具体承担执行动作的 Controller 的对应关系, 框架约定了 app/router.js 文件用于统一所有路由规则。通过统一的配置,我们可以避免路由规则逻辑散落在多个地方,从而出现未知的冲突,集中在一起我们可以更方便的来查看全局的路由规则。如何定义 Routerapp/router.js 里面定义 URL 路由规则// app/router.jsmodule.exports = app => { const { rou
2020-07-01 10:20:25
1559
原创 Web 安全
安全Web 安全概念Web 应用中存在很多安全风险,这些风险会被黑客利用,轻则篡改网页内容,重则窃取网站内部数据,更为严重的则是在网页中植入恶意代码,使得用户受到侵害。常见的安全漏洞如下:XSS 攻击:对 Web 页面注入脚本,使用 JavaScript 窃取用户信息,诱导用户操作。CSRF 攻击:伪造用户请求向网站发起恶意请求。钓鱼攻击:利用网站的跳转链接或者图片制造钓鱼陷阱。HTTP参数污染:利用对参数格式验证的不完善,对服务器进行参数注入攻击。远程代码执行:用户通过浏览器提交执行命令,由
2020-07-01 10:11:18
495
原创 异常处理
异常处理异常捕获得益于框架支持的异步编程模型,错误完全可以用 try catch 来捕获。在编写应用代码时,所有地方都可以直接用 try catch 来捕获异常。// app/service/test.jstry { const res = await this.ctx.curl('http://eggjs.com/api/echo', { dataType: 'json' }); if (res.status !== 200) throw new Error('response statu
2020-07-01 09:58:12
341
原创 egg-mysql
在 Web 应用方面 MySQL 是最常见,最好的关系型数据库之一。非常多网站都选择 MySQL 作为网站数据库。egg-mysql框架提供了 egg-mysql 插件来访问 MySQL 数据库。这个插件既可以访问普通的 MySQL 数据库,也可以访问基于 MySQL 协议的在线数据库服务。安装与配置安装对应的插件 egg-mysql :$ npm i --save egg-mysql开启插件:// config/plugin.jsexports.mysql = { enable:
2020-07-01 09:48:44
530
原创 画出ATM自动取款机系统相关图
ATM自动取款机(automatic teller machine)是银行在银行营业大厅、超市、商业机构、机场、车站、码头和闹市区设置的一种小型机器,利用一张信用卡大小的胶卡上的磁带〔或芯片卡上的芯片〕记录客户的基本户口资料,让客户可以透过机器进行提款、存款、转帐等银行柜台服务。需求分析:ATM自动取款机系统的需求分析简述如下:(1)客户将银行卡插入读卡器,读卡器识别卡的真伪,并在显示器上提示输入密码。(2)客户通过键盘输入密码,取款机验证密码是否有效。如果密码错误提示错误信息,如果正确,提示客户进
2020-06-25 15:16:21
6113
4
原创 画图实现考试成绩管理系统
考试成绩管理系统由于篇幅原因,对于系统的UML建模,我们仅给出系统的需求分析和各种建模元素的图例。本附录介绍的是一个考试成绩管理系统。1.1需求分析考试成绩管理系统是举行成人高考、自学考试等成人高校对每个参与考试的学员成绩进行综合管理的一个系统。本系统的功能性需求如下:(1)学员报名参加相应的科目考试,通过考试成绩管理系统办理考试报名手续,并产生相应的考试编号。(2)每次考试完毕后,系统管理员及时将参加考试学员的考试最终成绩输入到考试成绩管理系统中。(3)考试成绩管理系统可以供学员和系统管理人员
2020-06-25 15:12:11
3464
2
原创 微信小程序实现一个食堂点餐
dish.html<view class="container flex-wrap flex-direction-row"> <!-- left aside --> <view class="aside flex-wrap flex-direction-col"> <block wx:for="{{navList}}"> <text class="type-nav {{curNav == item.id ? 'selected' : ''
2020-06-25 15:09:02
3296
2
原创 微信小程序一个简单聊天室
cha.js// pages/chat/chat.js// 获取小程序实例let app = getApp();Page({ /** * 页面的初始数据 */ data: { nickname:'', avatar:'', chatlists:[ { nickname:'小林', avatar:'https://timgsa.baidu.com/timg?image&quality=80&siz
2020-06-25 15:01:20
1535
1
原创 关于ES6 和AJAX
ES6:ES5,ES6W3C:制定规范;ECMA:欧洲计算机制造商联盟EcmaScript:ESES5里面:变量提升,只提升声明,不提升赋值;声明的函数也会提升到前面,函数的提升优先级高于变量;在es6里面声明变量使用let;解构赋值:解析结构进行赋值。类:在ES5里面使用原型体现在ES6里面就是class;属性:特征方法:行为本地服务器访问的方式:http://localhosthttp://127.0.0.1http://lulaoshihttp://suibia
2020-06-25 14:51:54
903
原创 关于js基础复习与练习
基础 JS用户体验:JS在用户体验方面功不可没;在真正的学习JS的过程之中,并没有什么炫酷的效果。JAVASCRIPT:雷峰塔,nodejs做服务器JAVA:雷锋,做服务器语言很弱小,平台很强大。变量:Js里面的变量是弱类型,声明的时候不需要指定类型;严格区分大小写。变量的声明:var声明变量, let声明变量;const声明静态变量;变量的类型:基础类型:基础类型里面的数据是不能修改的数字、字符串、布尔(true, false)、null、undefinedUndefined
2020-06-25 14:48:55
264
原创 关于html &css认识
HTML&CSS:标签:使用尖括号括起来的。 W3C规范;属性:是标签的附加信息 定义在开始标签里面的,多个属性之间使用空格分开,属性和属性值之间使用=连接;分类: 块级标签:会独自占用一行,有自己的宽度和高度,盒子、箱子,div、table、li、p、ul、ol; 行内标签:不会独自占用一行,没有自己的宽度和高度,宽度和高度靠内容撑起来,购物袋, span、b、a等文字标签; 行内块级标签:不会独自占用一行,但是有自己的宽度和高度,img; 一个页面分成三个层:结构层、修饰层、逻
2020-06-25 14:42:21
294
原创 使用egg 实现服务器端编写
'use strict';const Controller = require('egg').Controller;class AdminController extends Controller { async login() { const { ctx } = this; // 接收post过来的数据 let data = { code:1, Msg:'登录成功' }; let formdata = ctx.reques
2020-06-25 14:36:36
387
原创 使用layui 实现客户端编写
<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>管理后台</title> <link rel="stylesheet" href="./layui/css/lay
2020-06-25 14:31:22
456
原创 实现抽奖效果
js代码document.querySelector('.open').onclick = function(){ let rednum = [], bluenum = []; for(let i=1; i <34; i++){ rednum.push(i); if(i > 16) continue; bluenum.push(i); } let allball = document.querySelectorAl
2020-06-25 14:19:55
371
原创 仿京东首页轮播图编写
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>轮播图</title> <link rel="stylesheet" href="./css/07.css
2020-06-25 14:16:26
576
原创 京东首页秒杀倒计时
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>京东首页倒计时</title> <style> .djs {
2020-06-25 14:10:27
840
原创 关于RIA的知识
RIA"富"的含义:丰富的数据意味着客户端用户界面能表现和应对更多更复杂的数据模式,这样才能处理客户端的运算以及异步发送,接受数据。为了达到高度复杂的数据模式,客户端允许用户构建一个高响应,交互式 的应用程序。丰富也指RIA能提供更多的改良界面。HTML只能为用户的界面提供有限的功能,反之,RIA允许一些 富有创造性的界面控制,巧妙的与数据模式结合。丰富的结果是用户可以创建一个客户端界面,这样更容易反映丰富性与复杂性共存的数据和逻辑。RIA优点:RIA结合了C/S架构反应速度快,交互性强的优点
2020-05-19 14:41:55
512
原创 关于Map端的Shuffle过程与Reduce 端的Shuffle过程
在Map端的Shuffle过程:Map的输出结果首先被写入缓存,当缓存满时,就启动溢写操作,把缓存中的数据写入磁盘文件,并 清空缓存。当启动溢写操作时,首先需要把缓存中的数据进行分区,然后对每个分区的数据进行排序和合并,之后再写入磁盘文件。每次溢写操作会生成一个新的磁盘文件,随着Map任务的执行,磁盘中就会生成多个溢写文件。在Map任务全部结束之前,这些溢写文件会被归并成一个大的磁盘文件,然后通知相应的Reduce任务来领取属于自己处理的数据。Map端Suffer过程包括四个步骤:(1)输入数据和执
2020-05-10 15:03:28
7665
原创 了解云计算与其他计算形式的关系
云计算与其他计算形式的关系1、云计算与分布式计算分布式计算是将待解决的问题分成多个小问题,再分配给许多计算系统处理,最后将处理结果加以综合。分布式计算的优点:1) 稀有资源可以共享;2) 通过分布式计算可以在多台计算机上平衡计算负载;3) 可以把程序放在最适合运行它的计算机上。云计算是分布式计算的一种新形式,但是云计算提供的服务包含了更复杂的商业模式,云计算包含的分布式计算特征主要为:1) 通过资源调度和组合满足用户的资源请求;2) 对外提供统一的单一的接口。2、云计算与网格计算网络计算
2020-05-10 14:53:35
1234
原创 了解云计算的几种服务类型
云计算服务类型1、 基础设施即服务(IaaS)IaaS是云计算的基础,为上层云计算服务提供必要的硬件资源,同时虚拟化技术的支持下,IaaS层可以实现硬件资源的按需配置,创建虚拟的计算、存储中心、使其能够把计算单元、存储单元、I/O设备、带宽等计算机基础设施集中起来,成为一个虚拟的资源池对外提供服务。虚拟化技术是IaaS的关键技术。2、 平台即服务PaaSPaaS既要为SaaS层提供可靠的分布式编程框架,又要为IaaS层提供资源调度、数据管理、屏蔽底层系统的复杂性等支持; 同时 PaaS 又自己的软件
2020-05-10 14:50:43
6730
原创 关于云计算的定义
云计算的定义:对于一般的用户而言,云计算是指通过网络以按需、易扩展的方式获得所需的服务,即随时随地只要能上网就能使用各种各样的服务。对于专业人员而言,云计算是分布式处理、并行处理和网络计算的发展,或者说是这些计算机科学概念的商业实现,是指基于互联网的超级计算模式,即把原本存储于个人计算机、移动设备等个人设备上的大量信息集中在一起,使其强大的服务器协同工作。它是一种的新兴的共享计算资源的方法,能够将巨大的系统连接在一起,以提供各种计算服务。云计算的定义有以下四种:(1)云计算是一种利用互联网实现随时随
2020-05-10 14:47:38
2797
原创 为什么要搭建多模块的maven项目?
我们为什么要搭建多模块的maven项目呢?以多模块的方式组织项目,其实也是maven一直倡导的。做开发的同学都知道的一个概念就是“低耦合,高内聚”,将项目划分多模块,可以极大的增大代码的重用性,防止随着项目的增大,pom文件越来越臃肿。对于一般的java项目我们一般是这么分层的:dao层负责数据库的交互。service层主要处理业务逻辑。web层负责与客户端交互。pojo层存放的是实体类。common层存放我们常用的一些公用的工具类等。对应的,在一个项目中,我们会看到一些包名:c
2020-05-09 23:20:26
1019
原创 缓存Redis的兄弟姐妹
缓存Redis的兄弟姐妹Redis实现ICache接口,它的孪生兄弟MemoryCache,内存缓存,千万级吞吐率。各应用强烈建议使用ICache接口编码设计,小数据时使用MemoryCache实现;数据增大(10万)以后,改用Redis实现,不需要修改业务代码。问题1.一条数据多个key怎么设置比较合理?如果对性能要求不是很高直接用json序列化实体就好,没必要使用字典进行存储。2、队列跟List有什么区别?左进右出的话用List还是用队列比较好?队列其实就是用List实现的,也是基于Li
2020-05-09 23:08:28
374
原创 关于微服务架构的知识
微服务架构的优点对于单一体系结构,开发人员经常面临有限的可重用性和可伸缩性的挑战。但是,通过微服务设计,可以将这个单元分解为不同的模块,从而简化开发,部署和维护。那么让我们来看看微服务架构的一些主要优点:技术灵活性虽然单片架构总是让开发人员寻找“适合工作的工具”,但是微服务架构在一个掩护下提供了多种技术的共存。不同的解耦服务可以用多种编程语言编写。这不仅使开发人员能够进行试验,而且还可以通过添加额外的特性和功能来扩展他们的产品。提高效率微服务架构加速了整个创建过程。与单个单元不同,团队
2020-05-09 22:58:36
394
原创 Spring和Spring Boot创建JSP Web应用程序所需的配置
Spring和Spring Boot创建JSP Web应用程序所需的配置Spring需要定义调度程序servlet,映射和其他支持配置。我们可以使用 web.xml 文件或Initializer类来完成此操作:public class MyWebAppInitializer implements WebApplicationInitializer { @Override ...
2020-05-07 11:15:44
564
原创 什么是Spring和什么是Spring Boot
什么是Spring作为Java开发人员,大家都Spring都不陌生,简而言之,Spring框架为开发Java应用程序提供了全面的基础架构支持。它包含一些很好的功能,如依赖注入和开箱即用的模块,如:Spring JDBC 、Spring MVC 、Spring Security、 Spring AOP 、Spring ORM 、Spring Test,这些模块缩短应用程序的开发时间,提高了应用开发...
2020-05-07 11:10:01
377
原创 如何配置负载均衡
配置负载均衡主要就是把负载均匀合理地分发到多个服务器上,实现压力分流的目的。主要配置如下:http { upstream myserver { # ip_hash; # ip_hash 方式 # fair; # fair 方式 server 127.0.0.1:8081; # 负载均衡目的服务地址 server 127.0.0.1:8080; ...
2020-05-07 10:56:18
1469
原创 关于Nginx 操作的一些小知识
Nginx 操作常用命令Nginx 的命令在控制台中输入 nginx -h 就可以看到完整的命令,这里列举几个常用的命令:nginx -s reload # 向主进程发送信号,重新加载配置文件,热重启nginx -s reopen # 重启 Nginxnginx -s stop # 快速关闭nginx -s quit # 等待工作进程处理完成后关闭nginx -T ...
2020-05-07 10:45:17
372
原创 SpirngBoot中使用Micrometer
SpirngBoot中使用MicrometerSpringBoot中的spring-boot-starter-actuator依赖已经集成了对Micrometer的支持,其中的metrics端点的很多功能就是通过Micrometer实现的,prometheus端点默认也是开启支持的,实际上actuator依赖的spring-boot-actuator-autoconfigure中集成了对很多框架...
2020-05-05 22:56:12
577
1
原创 关于Counter
CounterCounter是一种比较简单的Meter,它是一种单值的度量类型,或者说是一个单值计数器。Counter接口允许使用者使用一个固定值(必须为正数)进行计数。准确来说:Counter就是一个增量为正数的单值计数器。举个很简单的使用例子使用场景:Counter的作用是记录XXX的总量或者计数值,适用于一些增长类型的统计,例如下单、支付次数、Http请求总量记录等等,通过Tag可...
2020-05-05 22:51:12
933
2
原创 关于MeterRegistry
MeterRegistryMeterRegistry在Micrometer是一个抽象类,主要实现包括:SimpleMeterRegistry:每个Meter的最新数据可以收集到SimpleMeterRegistry实例中,但是这些数据不会发布到其他系统,也就是数据是位于应用的内存中的。CompositeMeterRegistry:多个MeterRegistry聚合,内部维护了一个MeterR...
2020-05-05 22:45:39
10168
原创 RabbitMQ 使用场景
RabbitMQ 使用场景解耦(为面向服务的架构(SOA)提供基本的最终一致性实现)场景说明:用户下单后,订单系统需要通知库存系统。传统的做法是,订单系统调用库存系统的接口。传统模式的缺点:假如库存系统无法访问,则订单减库存将失败,从而导致订单失败订单系统与库存系统耦合引入消息队列订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户订单下单成功库存系统:...
2020-05-05 22:36:37
388
1
原创 为什么索引结构默认使用B-Tree,而不是hash,二叉树,红黑树?
为什么索引结构默认使用B-Tree,而不是hash,二叉树,红黑树?hash:虽然可以快速定位,但是没有顺序,IO复杂度高。二叉树:树的高度不均匀,不能自平衡,查找效率跟数据有关(树的高度),并且IO代价高。红黑树:树的高度随着数据量增加而增加,IO代价高。为什么官方建议使用自增长主键作为索引?结合B+Tree的特点,自增主键是连续的,在插入过程中尽量减少页分裂,即使要进行页分裂,也...
2020-05-05 22:24:32
642
原创 索引是什么?
目录:索引是什么?索引能干什么?索引的分类索引是什么?索引是帮助MySQL高效获取数据的数据结构。索引能干什么?提高数据查询的效率。索引的分类从存储结构上来划分:BTree索引(B-Tree或B+Tree索引),Hash索引,full-index全文索引,R-Tree索引。从应用层次来分:普通索引,唯一索引,复合索引。根据中数据的物理顺序与键值的逻辑(索引)顺序关系:...
2020-05-05 22:20:37
550
原创 有必要了解一下Java 引用类型原理
Reference我们先看下Reference.java中的几个字段public abstract class Reference<T> { //引用的对象 private T referent; //回收队列 vol00000atile ReferenceQueue<? super T> queue; //当该引用被加入到qu...
2020-05-05 22:11:57
404
1
原创 为什么类不能过长?
为什么类不能过长?目录:类过长:读不通,扩展不通类过长:可能有冗余代码类过长:多半是职责过多类过长:读不通,扩展不通读不通 - 直接用滚轮滚都得好几秒,就算是原开发者,时间长了恐怕也难以理清整个类,更不用说是其他的人扩展不通 - 一个类有过多的接口,会让扩展这个类变得异常困难,一动千行类过长:可能有冗余代码冗余代码,就是重复代码冗余代码的危害非常大:冗余代码使方法、类...
2020-05-05 21:59:22
457
原创 了解Collection 和 Collections
Collection 和 Collections区别java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。Collection├List...
2020-05-03 21:47:36
1786
1
原创 学习Iterator 与 ListIterator
Iterator 与 ListIteratorIteratorIterator的定义如下:public interface Iterator<E> {}Iterator是一个接口,它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素。Iterator提供的API接口如下:boolean hasNext():判断集合里是否存在下一个元素。如果有...
2020-05-03 21:41:30
505
电影日历20204191108.zip
2020-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人