- 博客(45)
- 资源 (16)
- 收藏
- 关注
原创 request.getParameter和request.getAttribute区别
(1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法(2) getParameter()方法获取的是请求链接中的参数值,或者提交表单中的参数值;getAttribute()是从请求域中获取值,这个值是需要先通过setAttribute()设置进去。...
2021-05-18 19:21:57
405
转载 什么是RC版本?
RC:(Release Candidate)Candidate是候选人的意思,用在软件或者操作系统上就是候选版本。Release是发行、发布的意思。Release.Candidate.就是发行候选版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错!含义RC=Release Candidate,含义 是"发布候选版",它不是最终的版本,而是最终版(RTM=Release To Manufacture)之前的最后一个版本。广.
2021-03-30 14:04:17
1954
转载 SQL Server使用OFFSET分页失效
最近有一个客户遇到一个奇怪的问题,以前使用ROW_NUMBER来分页结果是正确的,但是替换为SQL SERVER 2012的OFFSET...FETCH NEXT来分页出现了问题,因此,这里简单分析一下原因,更深层次的原因还没有确切的结论,但可以提供解决办法。 在升级数据库后并且应用新功能时,这个问题可能会困扰一些同学......遇到这类问题,提供两个建议:1. ORDER BY 子句包含保证是唯一的列或列组合2. ORDER BY 子句的列或列组合可以利用INDEX进行排序
2021-01-08 18:23:31
1461
转载 Java后端WebSocket的Jetty实现
一.WebSocket简单介绍 在WebSocket规范提出之前,开发人员实现实时性较强的功能基本采用两种轮询方法:轮询(polling)和Comet技术。 轮询:轮询技术要求客户端以设定的时间间隔周期性地向服务端发送请求,频繁地查询是否有新的数据改动。明显地,这种方法会导致过多不必要的请求,浪费流量和服务器资源。 Comet技术可分为:长轮询、流技术。长轮询改进了上述的轮询技术,减小了无用的请求。它会为某些数据设定过期时间,当数据过期后才会向服务端发送请求;这种机制适合数据的改动...
2021-01-08 18:18:36
983
转载 sqlserver下会话、连接、进程之间的关系
一、sqlserver下会话、连接、进程简介会话:会话是从通信开始到通信结束的通信双方之间的上下文。会话是存在于实例中的逻辑实体。这个上下文是服务器端的一块内存:它记录了这次连接的客户机,哪个应用程序,哪个用户登录以及其他信息。————————————————————————————连接:连接是从客户端到mssql sqlserver实例的物理路径。该连接可以在网络上建立,也可以通过IPC机制在本地机器上建立。通常建立客户端进程和专用服务器或调度程序之间的连接。————————————————
2020-11-20 14:49:04
933
原创 SQL Server主键/索引/唯一约束各名词联系与区别
首先说下主键:PRIMARY KEY 约束唯一标识数据库表中的每条记录。唯一性是主键最主要的特性,主键不能有重复值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键(可以是多个列为一个主键)。唯一约束(Unique Constraint):约束唯一标识数据库表中的每条记录,确保表中的某一列或者复合列数据没有相同的值。UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。PRIMARY KEY 拥有自动定义的 UNIQUE 约束。请注意,每个表可
2020-10-30 17:12:44
1777
转载 git操作及fatal: Authentication failed for错误解决
1、配置用户信息git config --global user.name [username]git config --global user.email [email]2、查询用户信息git config --list3、如果push遇到在输入密码是熟错后,就会报这个错误fatal: Authentication failed for解决办法:git config --system --unset credential.helper之后你在push就会提示输入名称和密码
2020-09-29 09:20:02
775
转载 Ubuntu 中vi下方向键变成ABCD, backspace无法删除字符的解决办法
在linux中安装完VIM后,发现在insert模式下,按下四个方向键在屏幕中会输出ABCD这样的字符,并且Backspace无法实现删除功能。虽然可以在normal模式下通过hjkl实现光标的移动,通过x和d实现删除功能,但是每次都要进行模式切换,稍显麻烦。究其原因,出现这种情况是因为vim和系统自带的vi的兼容性以及一些默认设置问题。只需要修改vim的配置文件.vimrc即可(次文件位于用户根目录下)。在terminal中输入:echo "set nocompatible">>
2020-08-27 09:13:07
518
转载 IDEA新版本界面看不到Version Control窗口的Local Changes显示
IDEA 版本:2020.1以前窗口底部是有个Version Control的窗口的(如下图所示),但是现在没有了= =,发现网上教程都很旧用不了,记录一下给后来的同学指路吧~嘻嘻…现在变成了这样,这个Git菜单栏就是以前的Version Control,但是上面的Local Changes的标签页没有了,就很不方便官网说2020.1版本以后这个标签页默认在git commit时才会看到。(正文从这才开始…)可以进入Settings/Preferences/Version C
2020-08-25 17:23:41
9461
13
原创 如何在MySQL中导入超大的sql文件?
小伙伴们在开发过程中,有时候会遇到新环境数据迁移问题,需要把之前的数据库导入到新环境,其中一种方式就是通过导入sql文件。我们可以在客户端sqlyog或者navicat中直接导入(此种方式比较慢),也可以通过source命令导入(速度会比较快)。 但是,如果我们的sql文件过大,比如超过了1G,导入过程可能会遇到一些问题,比如“Out of memory”(内存不足)或者“mysql server has gone away”(一般是操作sql文件时间过长,导致超时,client端和...
2020-06-24 11:47:44
2922
3
原创 redis设置密码
redis服务器默认没有设置密码,不需要密码即可连接到redis服务器。不过为了安全起见,一般生产环境都要设置密码。设置密码有两种方式,此处以windows环境为例。1. 命令行设置密码。运行cmd,切换到redis根目录,先启动服务端。注意,此处需要指定配置文件redis.windows.conf,否则后续修改密码无法永久存储。>redis-server.exe redis.windows.conf另开一个cmd窗口,切换到redis根目录,启动客户端。此处是连接本地redi
2020-05-12 23:51:13
3766
转载 logback 配置详解(二)——appender
1、appender <appender>是<configuration>的子节点,是负责写日志的组件。 <appender>有两个必要属性name和class。name指定appender名称,class指定appender的全限定名。 1.1、ConsoleAppender 把日志添加到控制台,有以下子节点: <en...
2020-03-26 15:22:45
348
转载 logback 配置详解(一)——logger、root
1、根节点<configuration>包含的属性scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。debug:当此属性设置为true时,将打印出logback内部...
2020-03-26 15:20:14
781
原创 为什么Elasticsearch查询变得这么慢了?
看到一篇分析文章,很不错,遇到同样问题的小伙伴可以阅读下,或许有所收货,下面是文章链接:点击阅读
2020-03-04 17:02:18
1013
转载 Elasticsearch中filter查询优化:number? keyword? 傻傻分不清楚
【携程旅行网 吴晓刚】上周,在某多多搬砖的一位朋友在微信上找我咨询,说他们公司一个ES集群从2.4升级到5.5以后,一个很简单的Query查询耗时突然从几十毫秒,变成800-1000毫秒,几十倍的性能下降!原始问题链接:# Why my search slow?这个查询非常简单,就是3个过滤条件求交集而已:{ "from": 0, "size": 10, ...
2020-03-04 16:56:28
1639
转载 Elasticsearch 技术分析(四): 分布式工作原理
|0前言通过前面章节的了解,我们已经知道 Elasticsearch 是一个实时的分布式搜索分析引擎,它能让你以一个之前从未有过的速度和规模,去探索你的数据。它被用作全文检索、结构化搜索、分析以及这三个功能的组合。 Elasticsearch 可以横向扩展至数百(甚至数千)的服务器节点,同时可以处理PB级数据。虽然说 Elasticsearch 是分布式的,但是对于我们开发者来说并未...
2019-12-25 09:48:02
310
原创 高并发下,使用System.currentTimeMillis()计算时间差出现负数
最近在压测一个接口,使用如下方法获取时间差:long start = System.currentTimeMillis();object.methodinvoke();long end = System.currentTimeMillis();long cost= end - start;打印的日志记录时间差,后来发现日志里出现了很多负数,感到很奇怪,查了资料,发...
2019-12-13 15:09:32
8982
1
原创 ElasticSearch在Linux上的部署以及常见问题解决方案
准备环境操作系统:64位Ubuntu-14.04.6ElasticScarch版本:6.4.0JDK:1.8开始环境的搭建添加普通用户账号:由于Elasticsearch可以接收用户输入的脚本并且执行,为了系统安全考虑,不允许root账号启动,所以需要使用普通账户启动项目,或者给Elasticsearch单独创建一个用户来运行Elasticsearch。使用命令,添加一个用户叫e...
2019-11-14 10:45:26
2094
原创 阿里云服务器,使用FTP客户端连接,报(331 Please specify the password...530 Login incorrect.)问题解决方案
使用FileZilla连接阿里云服务器,报错:响应: 331 Please specify the password.命令: PASS **********响应: 530 Login incorrect.错误: 严重错误: 无法连接到服务器解决方案:1、检查安全组里21端口有没开放2、检查ftp目录访问权限是否开启 输入getsebool...
2019-11-09 23:12:40
12392
原创 解决IDEA在update classes时会build整个工程而不是热加载更新修改的文件问题
最近在使用IDEA做项目的时候,遇到一个非常伤脑筋的问题,严重影响开发进度。之前因为IDEA配置过热加载更新,有修改文件时,使用update classes and resources就可以很快的更新看到修改后效果。但是这次不知道什么原因,当修改完某个类,再运行update classes and resources时,IDEA竟然开始build然后对整个工程都重新编译一遍,因为项目比较大,时...
2019-10-31 10:43:28
3759
3
原创 在一台机器上部署多个Redis实例
实际开发过程中,会布置多个环境进行测试,由于数据冲突问题,需要单独的redis实例,在服务器不足的情况下,这时候可以考虑使用redis的服务多开。原理:与nginx和tomcat等添加容器,单实例多应用一样,复制新的配置文件,改变配置名称,修改配置文件里面的端口号、PID文件路径以及日志文件路径、 转储文件路径,确保两个或者多个redis服务不会冲突。步骤:一:安装redis。网...
2019-10-26 12:27:37
985
原创 ElasticSearch仅统计数据的查询语句
实际应用中,有时候只是想统计符合条件的数据条数,并不需要返回详细数据,以加快数据传输。这时候可以设置"size": 0,表示不返回数据详情,DSL查询语句如下:{ "query": { "bool": { "must": [ { "match": { ...
2019-09-29 18:49:11
3675
原创 ElasticSearch中字符串类型(Text和keyword)的选择
ElasticSearch 5.0以后,字符串类型有重大变更,移除了string类型,string字段被拆分成两种新的数据类型:text和keyword。text:会分词,然后进行索引,用于全文搜索。 支持模糊、精确查询 不支持聚合keyword:不进行分词,直接索引,keyword用于关键词搜索 支持模糊...
2019-09-24 11:42:22
10792
转载 Elasticsearch中 match、match_phrase、query_string和term的区别
(一)text字段和keyword字段的区别以下给出一个例子:首先建立一个索引和类型,引入一个keywork的字段:PUT my_index{ "mappings": { "products": { "properties": { "name": { "type": "keyword" } }...
2019-09-24 11:01:25
16048
8
转载 使用fastjson时出现$ref: "$.list[0]"的解决办法(重复引用)
List<Object> list = new ArrayList<>();Object obj = new Object();list.add(obj);list.add(obj);
2019-08-23 15:20:05
1265
原创 IDEA build artifacts过程很慢的解决方案
以下是几个解决方案,可以尝试:一、可能是缓存的文件太多了导致,file->Invalidate Caches /Restart,清理缓存, 并重启IDEA。重启之后,会重建索引,此过程较慢, 但build的过程会加快。二、进入file->Project Structure->Modules->选中项目名称-paths,把Exclude Output paths 打...
2019-08-15 13:03:33
18772
原创 div添加点击事件
看了网上的一堆答案,都没法使用,不是监听方法无效,就是无响应,试了很多办法,终于搞定,在此分享下,帮助一样踩坑的童鞋:<div onclick="javascript:toSubmit();">其中“javascript:”必须要加。...
2019-08-12 11:38:25
9612
2
原创 form表单同时提交带文本和图片的数据
方法一:使用ajax异步提交此种方法的好处是可以回调响应结果。html代码:<form action="${basePath}/save" method="post" name="form" id="form"> <table> <tr> <td>名称:</td> ...
2019-07-09 11:30:59
15969
5
原创 IDEA OutOfMemory(内存溢出)的问题解决
1. idea编译时内存溢出解决办法:打开设置界面,搜索Compiler(编译),如下图所示,将这个值设置为一个较大的值。2. 运行时内存溢出解决办法:打开tomcat设置页面,VM options加上参数:-server -XX:PermSize=1024M -XX:MaxPermSize=1024m...
2019-05-07 15:07:31
57393
1
原创 json解析时遇到英文双引号报错解决
有时解析json时,会碰到里面带有英文的双引号,导致解析错误,可以在前端发送到后端前,将json进行转义一下:引号"转为&quot;然后再转为json,发给后端。...
2018-11-28 16:28:35
3190
转载 MySQL INSERT插入条件判断:如果不存在则插入
我们经常需要进行sql的批量插入,要求:该条记录不存在则插入,存在则不插入。如果使用一条INSERT语句实现呢?对于普通的 INSERT 插入,如果想要保证不插入重复记录,我们只有对某个字段创建唯一约束实现;那有没有不创建唯一约束,仅通过 INSERT INTO 一条语句实现的方案呢?答:使用 INSERT INTO IF EXISTS, 具体语法如下 INSERT INTO...
2018-10-18 10:59:45
7596
原创 Mybatis运行报错:Cause: java.sql.SQLException: Parameter index out of range解决方法
今天在调一个接口的时候,sql和实现方法都写好了,单元测试时报这个错误:Parameter index out of range (5 > number of parameters, which is 4).翻译过来就是sql里需要五个参数,但是只传了四个参数。纳尼?明明传了五个的,为什么少了一个呢?仔细检查了下sql语句,发现问题应该出在了like这个地方:name like ...
2018-10-09 10:23:38
12877
转载 left join on 后and 和 where 的区别
优先级两者放置相同条件,之所以可能会导致结果集不同,就是因为优先级。on的优先级是高于where的。首先明确两个概念:LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在left join下,两...
2018-09-28 17:02:03
18655
转载 byte为什么要与上0xff?
无意间翻看之间的代码,发现了一段难以理解的代码。 byte[] bs = digest.digest(origin.getBytes(Charset.forName(charsetName))) ; for (int i = 0; i < bs.length; i++) { int c = bs[i] &...
2018-08-30 09:55:03
1195
转载 详解 WebAPI 签名机制
首先,写这篇文章的原因是因为最近某一个项目中的接口被人为调用了,导致了数据库数据被串改。虽然是内部人无意点的,但还是引起了我的担忧,所有整理了下关于WebAPI的相关签名机制。一、我们在开发接口时,有时候嫌麻烦就懒进行相关的验证或只进行一些简单的验证,这样客户端就可以直接调用:如调用WebAPI接口:http://XXX.XXX.XX.XXX:8123/Token/GetTest?ID=1...
2018-08-30 09:51:24
825
原创 mysql数据库字段类型int,mybatis返回long或者int
最近在做项目的时候,发现一个问题,以及解决方法。分享出来供大家参考。在mysql数据库里有个type字段,类型为int,但是项目中mybatis查询结果集里,使用map.get("type")获取,并用Integer强转时,报错,错误说明是long类型不能转为Integer。what?怎么会变成long类型了?后来查了下,貌似mybatis偶尔会抽风,数据库里int类型的字段会时不时的被转成l...
2018-08-23 10:06:34
17639
转载 WEB项目的相对路径与绝对路径
1 与路径相关的操作l 超链接l 表单l 转发l 包含l 重定向l <url-pattern>l ServletContext获取资源l Class获取资源l ClassLoader获取资源 【先说结论:1、强烈建议使用“/”开头的路径2、超链接、表单、重定向:以“/”开头的的路径相对于主机根目录【http://localhost:8080/】 转发、包含、<...
2018-03-28 00:42:24
1259
原创 jsp页面中地址插入图片不显示问题以及路径问题解决方法
上图是项目的结构。我想在主页面index.jsp页面获取avatar.png这张图,在页面里使用<img src="/pages/assets/avatars/avatar.png">获取,在Eclipse编辑时,用ctrl加鼠标左键,能点进去获取到图片。然而在浏览器通过http://localhost:8080/webtest/这个地址获取时,并没有显示出图片。 ...
2018-03-28 00:40:36
10366
原创 springMVC出现HTTP Status 405 - Request method 'GET' not supported错误的解决方法
今天在写一个简单的springMVC的表单请求处理时,出现了这个问题。我的form表单用的是post方法提交,并没有使用get方法,出现这个问题时,笔者可谓是一脸懵逼。这是form表单:这是对post请求的处理方法:检查了半天,网上的方法也试了很多都无法解决,后来在一个原理讲解贴里发现了解决办法,分享给大家做参考。原因:这是因为没有在对应的Controller类中添加对GET请求的处理方法。虽然笔...
2018-03-27 09:45:30
196081
8
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人