自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (6)
  • 收藏
  • 关注

原创 IP地理位置免费数据库文件下载及更新

MaxMind提供了免费的IP地址地理位置库,数据库文件可以从[官网](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data)下载,后续可以使用官方更新程序进行更新,免费版每周三和周五更新。

2023-03-25 10:55:20 1817 1

原创 OpenResty&Nginx安装ZhongKui-WAF

OpenResty&Nginx安装ZhongKui-WAF

2023-01-01 19:34:14 2021

原创 可能是全网最清晰的KMP算法讲解

KMP算法由D.E.Knuth,J.H.Morris和V.R.Pratt三位大神在1977年提出,它的核心算法是利用匹配失败后的信息,减少模式串与主串的匹配次数,以达到快速匹配的目的。

2022-08-21 14:52:08 3256 10

原创 Trie字典树及内存占用优化

Trie又叫字典树、前缀树,是一种数据结构。它将大量不同字符串以共享前缀的方式保存起来,形成一种树形的数据结构,由于共享字符前缀,按前缀逐级查找字符,所以检索效率极高。字典树本质上是DFA算法的一种实现。它的典型应用是文本词频统计、敏感词过滤。......

2022-08-04 18:02:55 1143

原创 Nginx安装WAF

Nginx安装WAF

2022-07-13 11:37:50 3402

原创 Linux安装Nginx

Linux安装Nginx

2022-07-12 11:52:45 507

原创 Linux安装Redis

Linux安装Redis及设置开机启动

2022-07-04 17:03:38 204

原创 Typora Beta版过期解决

Typora Beta版过期解决方案

2022-06-20 15:47:29 12178 67

原创 多版本MyEclipse共存

多版本MyEclipse共存

2022-06-06 09:53:02 333

原创 Column count doesn’t match value count at row 1

报错:Column count doesn’t match value count at row 1意思是列数目跟值数目不匹配。

2022-06-02 16:22:52 1338 1

原创 微信小程序获取地理位置最佳实现

定位微信小程序获取用户当前位置需要用户的授权,可以直接调用 wx.getLocation,微信会弹出授权提示,如果用户曾经拒绝过授权则不会弹窗。根据微信官方文档:授权部分接口需要经过用户授权同意才能调用。我们把这些接口按使用范围分成多个 scope ,用户选择对 scope 来进行授权,当授权给一个scope 之后,其对应的所有接口都可以直接使用。此类接口调用时:如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;如果用户已授权,可以直接调用接口;如果用户已拒绝授

2022-04-25 16:24:24 4595

原创 Docker Swarm

Docker SwarmSwarm 是 Docker 官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主机抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker 资源。Swarm 和 Kubernetes 比较类似,但是更加轻,具有的功能也较 kubernetes 更少一些。官方文档概念节点(Nodes)节点是参与 swarm 的 Docker 引擎的一个实例。你可以在单个物理计算机或云服务器上运行一个或多个节点,但生产环境中swarm部署通常包括

2022-04-19 17:40:32 685

原创 Docker Compose

Docker ComposeDocker Compose是Docker官方的开源项目,是一个定义和运行多容器Docker应用的工具。Docker Compose使用YAML文件配置应用的服务。一条命令就可以创建和启动配置的所有服务。官方文档地址使用Compose基本上需要三个步骤:定义Dockerfile文件在docker-compose.yml文件中定义服务,它们可以在隔离环境中一起运行运行docker compose up命令启动应用安装下载地址:Docker Compose验证d

2022-04-13 14:33:53 173

原创 杰卡德系数(Jaccard Index)

杰卡德系数(Jaccard Index)杰卡德系数,又称为杰卡德相似系数,用于比较两个样本之间的差异性和相似性。杰卡德系数越高,则两个样本相似度越高。定义有两个集合A和B,那么这两个集合的杰卡德系数为A和B的交集除以A和B的并集。

2022-01-22 17:45:14 16271

原创 汉明距离(Hamming Distance)

汉明距离(Hamming Distance)定义汉明距离以美国数学家理查德·卫斯里·汉明的名字命名,表示两个相同长度的字符串在相同位置上不同字符的个数。用d(x,y)来表示x和y两个字符串的汉明距离。汉明距离可以用来计算两个文本之间的相似度,根据不同字符的个数来判断两个文本是否相似。d(10010,10000)=2d(abcbc,abdab)=3计算根据定义,我们需要统计出相同位置上不同字符的个数,如何判断两个字符是否相同呢?如果两个字符都是数字,可以用a==b来判断,如果两个字符是非数字,可

2022-01-18 11:34:40 17817 2

原创 Eclipse各版本下载地址

https://archive.eclipse.org/eclipse/downloads/

2021-12-01 10:35:54 601

原创 Java double和float精度损失问题

问题一般,我们会用float和double来存储有小数的数据,可能还会用两个浮点型数据进行计算,在某些情况下,float和double会出现精度损失,导致存储的数据或者计算结果出现误差。举个例子public class Test { public static void main(String[] args) { double a = 0.11; double b = 2.32; System.out.println(a + b); System.out.println(0.11

2021-11-10 14:48:24 2610

原创 微信小程序解密手机号码异常

在后台解密用户手机号码时,偶尔会报以下异常:javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryptionjavax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a

2021-10-29 16:20:34 1359

原创 JavaScript字符串拼接包含</script>

由于一些原因,需要在页面JavaScript中拼接字符串,且拼接的字符串中包含了JavaScript脚本语句,比如:var str = "<script>alert('test');</script>";浏览器运行报错:Uncaught SyntaxError: Invalid or unexpected token。只需要将“/”转义即可:var str = "<script>alert('test');<\/script>";...

2021-06-25 18:38:27 954

原创 JQuery select设置选中值 option[text= 无效

百度搜一下,很多方法是这样写的:$("#nickNameoption[text='张三']").attr("selected", true);但是试了很多版本都不行,得这样:$("#nickName option:contains(‘张三’)").attr("selected",true);[attribute=value]这种方式是属性选择器,大概是因为option没有text这个属性吧,只是<option>标签中间的文本内容。...

2021-03-27 14:10:30 1000 4

原创 封装EasyExcel读写Excel

读取Excel的 jxl.jar jcom.jar poi.jar单sheet参数封装:import java.io.InputStream;import java.io.OutputStream;import java.util.List;import com.alibaba.excel.event.AnalysisEventListener;/** * Excel读写参数类 * @author test */public class ExcelPar...

2021-01-22 10:01:44 1016 2

原创 Nginx Access is denied

Windows系统上使用Nginx,用Windows ServiceWrapper将nginx包装成一个windows服务:<service> <id>Nginx</id> <name>Nginx</name> <description>Nginx</description> <logpath>D:\servers\nginx-1.16.1\</logpath>

2021-01-20 15:37:11 2927

原创 pdf.js跨域及屏蔽下载

下载地址https://github.com/mozilla/pdf.js/releases/使用方法在webroot或者webapps目录下建一个文件夹pdf.js,然后把下载后的文件解压,复制web和build两个文件夹到pdf.js目录下,浏览器访问viewer.html后面带上pdf文件地址即可,就像下面这样:http://a.example.com/pdf.js/web/viewer.html?file='+encodeURIComponent('/pdf/test.pdf')

2021-01-20 10:43:55 1756 2

原创 用户操作日志记录字段修改前后值

你可能遇到这样的需求,要详细记录用户的操作日志,像下面这样:用户张三将年龄从“20”改为“21”用户张三将爱好从“篮球”改为“足球”通常,用户可以一次改多个字段,然后一次性保存,这些字段的数据修改记录要分别保存。这样的日志需要知道以下数据:用户修改了数据库中什么字段 这个字段对应的中文名是什么 这个字段原来的值是什么 这个字段新值是什么这几个问题里,1和4是闭着眼都能搞明白的。问题2,字段的中文名可以用一个枚举类把英文和中文对应起来,但是如果字段很多的话,很繁琐,然后想起了.

2021-01-11 17:34:55 5407 2

原创 Java泛型获取实际类型

Test是一个泛型类,T是参数化的类型,在声明对象时,可以传入任何类型,但如何在构造方法Test()里获取传入的实际类型,即T呢,先上代码:public class Test<T> { private Class<T> clazz; public Test() { System.out.println(this.clazz); } public static void main(String[] args) { Test<User&

2020-12-15 17:17:54 926 5

原创 OAuth2.0四种授权方式详解

OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。OAuth1.0https://www.ietf.org/rfc/rfc5849.txtOAuth2.0https://tools.ietf.org/html/rfc6749OAuth2.0定义了四种获取令牌的方式授权码(authorization-code)隐藏式(implicit)密码式(password):客户端凭..

2020-11-30 16:42:28 6222

原创 数字签名和数字证书详解

签名当你在一个纸质文件上写上你的名字,按上你的指纹,就意味着这张纸上的内容经过了你的认可,你的笔迹和指纹就是你身份的证明。这是因为,笔迹很难伪造,而每个人的指纹更是独一无二的。在签名前,我们会检查文件内容有没有歧义、有没有涂改、有没有多余不必要的空白等,确认无误后再写下我们的名字,而收到签名后文件的人,再次对文件内容及签名进行检查,以确保文件内容没有被篡改。因此,签名可以用来认证签名者的身份及确保被签名文件内容的真实性。数字签名在互联网时代,文件以电子形式存在电脑里,我们从网上下载的文件、程

2020-11-28 09:39:41 4762

原创 群发邮件避免被识别为垃圾邮件

前言一些企业常常要要群发邮件给客户来做推广营销,大量重复内容往往很容易被邮箱运营商判别为垃圾邮件,直接放到用户垃圾邮箱里,甚至是直接屏蔽发邮件的ip,这样就会造成群发邮件的低到达率。如何识别垃圾邮件那么,邮箱服务商,比如网易136,腾讯qq邮箱,怎么识别垃圾邮件呢?一般是以下几种方法:1、关键词识别它首先将垃圾邮件中一些特征性的字眼收集起来(比如打折、免费、促销等),形成一个大的数据库,当一封邮件发出来的时候就会自动匹配邮件头、邮件标题、邮件内容中与这些库里的关键词特征,如果有相类似的

2020-11-03 12:13:00 3640

原创 Docker是什么及常用命令

简介Docker是一个开源的应用容器引擎;是一个轻量级容器技术;Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者都可以使用这个镜像。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。运行中的这个镜像称为容器,容器启动是非常快速的。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。核心概念docker主机(Host) 安装了Docker程序的机器(Docke...

2020-10-29 17:43:40 362 1

原创 CentOS安装卸载Docker

Docker版本Docker有社区版(docker-ce)和企业版(docker-ee)两个版本,企业版收费并且提供了一些额外的支持,社区版免费。社区版下面又分为stable、nightly、test。这里我们安装社区stable版。安装步骤官方安装教程地址:https://docs.docker.com/engine/install/centos/1、卸载旧版本旧版本叫docker或docker-enginesudo yum remove docker \

2020-10-22 10:54:46 722

原创 Docker镜像仓库地址-镜像加速

Docker默认使用国外仓库地址,docker pull时,可能会报net/http: TLS handshake timeout错误,只需将仓库地址改为国内即可。编辑/etc/docker/daemon.json文件,修改如下:{ "registry-mirrors": ["https://registry.docker-cn.com","https://hub.daocloud.io"]}然后执行命令,重启Docker:sudo systemctl daemon-reloads.

2020-10-20 16:40:40 1744

原创 Spring Boot以WAR包方式部署

Spring Boot内置了Tomcat,我们把项目打成jar包,然后在命令行执行java -jar xxx.jar即可启动Tomcat,这实在是方便。Spring Boot也支持以传统方式(即WAR包方式)部署我们的项目。首先,我们要提供一个SpringBootServletInitializer类的子类,并重写它的configure方法。@SpringBootApplicationpublic class Application extends SpringBootServletInitia

2020-10-15 15:42:41 171

原创 Java日志之Log4j2

Apache Log4j 2是Log4j的升级版,对Log4j的前身Log4j 1.x进行了重大改进,并提供了Logback中可用的许多改进,同时解决了Logback体系结构中的一些固有问题。与Logback相似,Log4j2可以重新加载修改过的配置文件,但与Logback不同,它将在进行重新配置的同时不会丢失日志事件。在稳态日志记录期间,Log4j 2在独立应用程序中是无垃圾的,而在Web应用程序中是低垃圾的。JMSAppenderHttpAppenderKafkaAp...

2020-09-11 18:04:16 396

原创 Java日志之Logback

最强大的格式化期,可以根据自定义格式输出日志,如果没有指定转换格式,就是用默认的转换格式1. %c %c{数字} 输出日志器的名称日志器名称为:com.linxingyang.Test1%c | %c{1} | %c{2} | %c{3} | %c{4}分别输出com.linxingyang.Test1 | Test1 | linxingyang.Test1 | com.linxingyang.Test1 | com.linxingya...

2020-09-08 15:58:22 278

原创 手机号码归属地接口

手机号码归属地API

2020-08-24 17:20:03 1929

原创 HttpClient无参数名+SSL+连接池

package com.test;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.nio.charset.StandardCharsets;import java.security.KeyManagementException;import java.security.KeyStoreException;import java.security.NoSuchAlgorithm.

2020-08-24 16:40:15 275 1

原创 Tampermonkey油猴

Chrome版下载地址Greasy Fork

2020-08-06 16:31:56 291

原创 SpringBoot+Mybatis多数据源

参考官网Configure Two DataSources#注意:如果没有指定DataSource的实现,而类路径里又有hikari,则是jdbc-url而不是urlapp.datasource.first.jdbc-url=jdbc:sqlserver://localhost:1433;DatabaseName=test1app.datasource.first.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver..

2020-07-17 15:15:29 117

原创 SpringBoot配置Mybatis-干货

本文使用的是Spring Boot 2.2.6引入数据库驱动和mybatis启动器:<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.0</version></dependency><!-- https://mvnr.

2020-07-16 17:23:42 170

原创 Lucene及Solr基本使用

import java.io.File;import java.io.IOException;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field.Store;import org.apache.lucene.document.StringField;import org.apache.lucen.

2020-06-15 15:42:33 245

复旦大学自然语言处理简介

自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分

2015-05-09

Spring开发

Spring是一个开源框架 Spring是于2003 年兴起的一个轻量级的Java 开发框架 由Rod Johnson 在其著作Expert One On One J2EE Development and Design中阐述的部分理念和原型衍生而来 它是为了解决企业应用开发的复杂性而创建的 框架的主要优势之一就是其分层架构 分层架构允许使用者选择使用哪一个组件 同时为 J2EE 应用程序开发提供集成的框架 Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情 然而 Spring的用途不仅限于服务器端的开发 从简单性 可测试性和松耦合的角度而言 任何Java应用都可以从Spring中受益 Spring的核心是控制反转(IoC)和面向切面(AOP) 简单来说 Spring是一个分层的JavaSE EEfull stack 一站式 轻量级开源框架 ">Spring是一个开源框架 Spring是于2003 年兴起的一个轻量级的Java 开发框架 由Rod Johnson 在其著作Expert One On One J2EE Development and Design中阐述的部分理念和原型衍生而来 它是为了解决企业应用开发的复杂性而创建的 框架的主要优 [更多]

2015-05-09

itext-5.5.5

iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iText的安装非常方便,下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了。

2015-05-09

mybatis中文版教程

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。

2015-05-09

springmvc教程

springmvc经典教程1.MVC:Model-View-Control框架性质的C层要完成的主要工作:封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。2.简要概述springmvcSpring C 层框架的核心是 DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即 使用了一种被称为Front Controller 的模式(后面对此模式有简要说明)。 Spring 的C 层框架使用了后端控制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。并且spring 的C 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。

2014-12-22

《HTTP权威指南》高清中文版

《HTTP权威指南》高清中文版本书中,我们会将HTTP 中一些互相关联且常被误解的规则梳理清楚,并编写了一系列 基于各种主题的章节介绍HTTP 各方面的特性。纵观全书,我们对HTTP “为什么”这 样做进行了详细的解释,而不仅仅停留在它是 “怎么做”的。

2014-05-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除