11 sp42a

尚未进行身份认证

热爱 Web 开发

等级
TA的排名 645

简简单单做一个带过期时间的内存缓存

做手机验证码的时候,一般都有五分钟或十分钟的限时机制,所以就需要把“号码–验证码”的信息暂存起来,过期便无效——类似于 Redis 自带过期的机制就适合了。不过应用 Redis 此类缓存模块要专门搭建环境和配置——比较繁琐,于是想到用 JVM 的缓存来做。关键地,我参考了该资源:https://blog.csdn.net/wab719591157/article/details/78029861并在这个基础上重写一遍,主要是改造为我自己的编码风格(例如泛型的处理,函数式 Lambda 代替 Inte

2020-05-25 00:49:55

Java 压缩/混淆 JavaScript 代码

基本上都是自己写的工具构建前端工程,压缩/混淆 JavaScript 代码的工具必不可少。我们是 Java 平台的,就是说用 Java 去压缩 JS,这样比较方便。虽然咱们可以外部调用 node 等专门的前端构建工具,但那样不省事,能在 Java 圈子里面搞定就行,我们不搞太复杂的。好~闲话不多说,先看看低配版的。低配版这个低配版就几个函数组成,没以前来其他第三方的包,故称为“低配版”。简单实用也可以,我也用了很久。/** * This file is part of the Echo Web Ap

2020-05-10 19:35:19

Istio 可以代替 Spring Cloud 吗?

背景过去,我们运维着“能做一切”的大型单体应用程序。 这是一种将产品推向市场的很好的方式,因为刚开始我们也只需要让我们的第一个应用上线。而且我们总是可以回头再来改进它的。部署一个大应用总是比构建和部署多个小块要容易。集中式:分布式:集群分布式和集中式会配合使用。我们在搭建网站的时候,为了及时响应用户的请求,尤其是高并发请求的时候,我们需要搭建分布式集群来处理请求。我们一个服务器的...

2020-04-06 15:32:47

一台 VPS 主机运行多个网站,多个 HTTPS 域名(基于 nodejs)

四年前写过一篇《用 nodejs 做反向代理服务器》,那时基于 HTTP 的,时过境迁,HTTPS 已是主流。怎么把 HTTP 升级到 SSL 呢?这里为大家稍作介绍一下,作法稍有不同。支持 SSL首先 nodejs 支持 HTTPS 很简单,只需要把 require(‘http’) 变为 require(‘https’),然后导入证书文件即可,当然也要把监听端口 80 变为 443。...

2018-05-13 17:48:21

Java 中国大陆身份证处理

开发过程中有涉及身份证的业务,首先是对身份证号码合法性的校验。我们先看看一个简单的版本,出处是 https://blog.csdn.net/ZWLJavaWeb/article/details/55047332。简单检测/** * 快速检测 * * @author https://blog.csdn.net/ZWLJavaWeb/article/details/55047332...

2020-03-27 14:55:38

巧用 ServletOutputStream 制作代码生成器

代码生成器(CodeGenerators)能够极大地提高工作效率。我们知道,模板技术推崇一种模式:输出=模板+数据。代码生成器的原理也可以同样如是,这里不妨借鉴 JSP 生成的思路,页面 HTML 换成 Java 语句,成为固定不变的内容,即是“模板”;数据就是动态获取的内容,即实体信息和数据库的表字段等信息。生成过程和标准 Servlet 的 MVC 模式没什么不同,只是自定义其中的 Servl...

2020-03-25 00:21:26

常见网络安全攻击分析

本文所述的常规性防御问题包括 XSS 攻击、 SQL 注入、CSRF 攻击、CRLF 注入,下面就逐一来分析这四种问题。跨站脚本攻击 XSS跨站脚本攻击(Cross Site Script,XSS,单词 Cross 可作“X”)是 Web 常见攻击的类型。同一域下面资源可以自由相互访问;不同域下面的资源,浏览器是会严格限制的。访问不同域称作“跨域”或“跨站”。如果主机名不相同(即使 a.qq....

2020-03-23 21:09:28

Vue Tab 组件再探究

初学 Vue 的时候,发现用 Vue 来写 Tab 组件是如此简单,利用“数据驱动”的思路还真和 js 控制 dom 不一样。请见下面第一版的代码,没有 js dom 那样 for 遍历各元素控制显示或隐藏,而是用 {‘selected’: index === selected} 控制样式,非常简洁。第一版的 tab 组件// 简单选项卡Vue.component('aj-simple-ta...

2020-03-22 23:00:46

Java 处理 JSON 标准规范

某日我瞎逛 Github,咦~发现 JSON 处理也有 javax,import javax.json.Json;import javax.json.JsonArrayBuilder;import javax.json.JsonNumber;import javax.json.JsonObject;import javax.json.JsonObjectBuilder;import j...

2020-03-05 15:45:17

用 WebSocket + Java 原生功能实现 Web 实时日志(兼容Win平台)

Tomcat产生的日志以文件形式保存在服务器上。如果要在 Web 上浏览这些日志,采用 WebSocket + tail 命令是简单可行的方式,例如这文章介绍得都很好。只是在 Win 系统上面就没有类似 tail 命令行的工具,除非找第三方或者 PowerShell 的,多少有点不便,——尽管多数 Win 用于开发环境,日志直接在 IDE 控制台上看就可以了。这里为大家介绍的是一种原生 Java ...

2020-02-20 16:15:36

Java8 Zip 压缩与解压缩

网上找过几个例子都有点小问题,还是谷歌找出来的靠谱。主要是增加了指定文件的功能,通过 Java8 的 Lambda 判断是否加入 ZIP 压缩,比较方便。函数表达式的签名是 Function<File, Boolean>,参数是待加入的 File 对象,返回值 true 表示允许,反之不行。完整代码在:https://gitee.com/sp42_admin/ajaxjs/blob/...

2020-02-16 23:22:57

免 mysqldump 命令备份 MySQL 数据库

使用官方提供的 mysqldump 命令可以轻松地备份SQL,但是通常应用服务器和数据库服务器不是放在一块的儿,是否可以通过纯 Java 或 JDBC 来实现备份呢?答案是可以的,笔者根据此思路进行了与 AJAJX-Data 的整合,代码行数更精简,只有 200 多行代码。但是,必须指出,这种思路有不少缺点,自然是不能代替官方工具的了。备份表结构通过 SHOW CREATE TABLE 语句完成...

2020-02-10 17:01:19

H5 动画大师 TweenMax.js/GSAP

手写过 CSS3 做 H5 动画,那过程很累,很低级。于是这次改用 TweenMax 库,感觉非常不错,原来它是做动画的老行尊,失敬失敬,早在 Adobe Flash 时代,这款就是知名的类库,知道现在还可以在其 GitHub 上找到它的 ActionScript 2/3 的开源代码,怪不得现在转到 JS 上面来,都那么的成熟。官网:https://greensock.com/源码:http...

2019-12-06 17:42:27

GoldenDict:一款免费的词典工具

开源软件 GoldenDict 是一款“词典”管理软件。为什么称之为“词典”管理软件呢?因为准确地说,GoldenDict 它本身并没有提供任何的“词典”,而是仅提供词典所需的各方面功能,好比一些词典常见的功能也包含在内,即普通查询单词和屏幕截取单词、单词发音三大功能。GoldenDict 的界面非常朴素,并且 GoldenDict 不以大而全的功能为目标,而是经典功能、实用至上为出发点,可以说就...

2009-08-24 23:30:00

9月Libra开发人员更新-路线图#1

9月Libra开发人员更新-路线图#1 September Libra Developer Update - Roadmap #1October 02, 2019Libra Association自六月份正式发布 Libra 项目以来,来自开发人员社区的反响一直非常令人激动。开发者已发布了多个区块链浏览器(libranaut,libraview,librabrowser 和 libex...

2019-10-09 12:14:18

Libra 开发者采风

Libra Developer SpotlightSeptember 12, 2019Michael Engle, Libra Association我们很高兴看到全球各地有如此众多的开发者率先在 Libra 测试网上进行创新的工作。这里就把那些有亮点的例子分享出来!We’re so excited to see so many leading developers from ar...

2019-10-07 09:39:06

发布 Libra Bug 悬赏项目

原文 https://developers.libra.org/blog/2019/08/14/libra-bug-bounty 2019-8-14在构建 Libra 区块链的过程中,安全问题一直是重中之重。假设人们在 Libra 上每一天都不间断运行着金融活动,可想而知最关键的是其背后的基础架构必须可靠且安全。为了显示更透明,我们在发布之前就充分计划好我们的计划,而且开源了 Libra 区块链...

2019-10-06 14:36:31

学习用 JS/CSS 画一个时钟

看到某君的时钟 Clock 代码 https://www.cnblogs.com/xingzhi/archive/2011/04/16/2017645.html,想学习怎么画一个时钟,逐重构之,也里面不合理的地方改进(例如用 js 写 css)。全部代码如下:<html><head> <meta charset="utf-8" /> <title...

2019-08-05 21:42:44

Facebook Libra 性能初探

译自:官方文档翻译 https://developers.libra.org/docs/crates/consensus。 本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。Libra 中文网同步翻译 http://www.libra-cn.top/document/info/?id=18Libra 协议的使命在于至此全球的金融基础设施。性能是满足这种需求不...

2019-07-22 13:09:42

Facebook Libra 共识协议 Consensus 简介

译自:官方文档翻译 https://developers.libra.org/docs/crates/consensus。本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。概述共识协议通过多个验证器来创建逻辑模型,这个模型实质是个数据库。共识协议下被提交的交易首先会不断地复制到不同的验证器,然后执行交易,对于交易顺序和执行结果进行检查,看是否能根据事先约定好...

2019-07-17 10:51:39

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 图书勋章
    图书勋章
    CSDN技术图书作者专属勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。