- 博客(169)
- 资源 (22)
- 收藏
- 关注
原创 使用httpclient时根据 CLOSE_WAIT 和 leased 判断连接处理是否正确
1CLOSE_WAIT 等待资源释放 对应socket中,客户端就是等待inputStream关闭,服务端就是等待outputStream关闭。 可以通过 netstate 指令获取连接情况。 # netstat -t | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' CLOSE_W...
2019-09-26 17:33:38
1306
原创 通过方法名,调用目标对象的方法。2种实现方式的比较
使用if/else的方式,通过对方法名的判断,调用对应的方法 优点:写法简单,逻辑简单 缺点:每新增一个方法,需要新增一个if/else判断,工作量较大使用反射获取目标对象所有的公共Method对象,遍历Method对象,将方法名称和Method对象存入Map集合,通过方法名获取Method对象,调用目标对象执行 优点:代码优雅,...
2019-09-19 10:39:55
608
原创 处理从oss下载文件偶发性文件内容为空的问题
背景: 使用url通过httpClient的get方法,从oss下载pdf文件,被下载的文件通过浏览器能正常查看和下载问题: 偶尔会出现一个下载文件为0KB的情况代码:GetMethod httpGet = new GetMethod(strUrlPath);InputStream in = null;FileOutputStream out = null;try {...
2019-09-18 11:07:28
1852
1
原创 lombok 封装的对象属性在 freemarker 中无法显示的问题
private Long lId;private Integer nEnable;lombok 生成的get方法 getLId()freemarker 使用的get方法 getlId()解决方法:在对象中使用freemarker的get方法public Long getlId(){ return lId; } public Long getLId()...
2019-08-27 18:54:45
435
1
原创 win7初次安装nodejs
我的系统是64位Windows 7遇到的坑在官网下载 node-v8.9.4-x64.msi 和之后的版本进行安装,始终提示safemode的问题,无法安装。解决1. 下载 http://nodejs.org/dist/v0.10.31/x64/node-v0.10.31-x64.msi 安装成功3. 安装成功之后系统环境变量PATH中已自动添加nodejs目录配置,...
2019-08-12 16:37:48
1136
原创 springboot + spring security + JWT 进行登录验证和权限管理
springsecurity 分2部分,登录验证和权限管理,在登录验证成功之后会在 SecurityContextHolder 上线文中添加 Authentication 对象,包含用户信息和角色信息,用于权限管理和系统验证用户信息保存。源码地址:https://github.com/huwenhu2007/springsecurityjwt/tree/master本代码实现了 j...
2019-08-09 14:44:40
1803
原创 java中匿名函数与lambda实现接口在使用上的异同
1.匿名函数和lambda实现接口在使用时都需要继承类或者实现接口的抽象方法。 区别:匿名函数接口可以有多个抽象方法,不能有默认方法;lambda实现接口时对应的函数接口只能有一个抽象方法,但是可以有多个默认方法2. 匿名函数和lambda实现接口只运行一次,在独立线程中运行,他们在使用局部变量时,局部变量必须为final;因为final是在class空间,可以防止方法运行结束局部变量...
2018-10-30 14:20:40
915
原创 数据库事务原理及并发、死锁
1. 什么是数据库事务1.1 数据库事务是指作为单个逻辑工作单元执行的一系列操作(SQL语句)。这些操作要么全部执行,要么全部不执行。1.2 通过ACID实现数据库事务模型1.2.1 原子性(Atomicity):事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行。1.2.2 一致性(Consistemcy):事务执行前后,数据库的状态都满足所有的完整性约束。
2017-06-25 16:35:40
11845
1
原创 java线程创建个人见解
创建线程的2种方式:1. extends Thread2. implements Runnable更准确的说是创建线程任务的2种方式,通过new Thread()即可创建线程,但是是一个空任务的线程,运行不会执行任何任务,通过Thread的源码即可了解: public void run() { if (target != null) {
2017-06-04 00:09:15
358
原创 java环境配置基础知识
1.在host文件中一个域名可以对应多个ip:通过该域名进行访问时会使用轮循的方式,第一次会访问第一个IP,第二次会访问第二个IP,依次类推
2015-04-28 14:17:16
1033
原创 内存数据库在秒杀系统中的使用
关系数据库:mysql 内存数据库:redis 秒杀系统一般都是大并发的update操作,如果单纯对数据库进行操作,每次update都会进行行锁,造成时间上的浪费,使用内存数据库redis可以有效提高update效率,然后使用同步策略(按照时间或者数据量)来将数据同步到mysql数据库
2015-04-27 14:55:22
1129
原创 mysql下的高并发SQL编写逻辑注意事项
对于select、update、insert,在项目开发中的使用顺序: 在项目开发中经常会遇到很多需要修改对某某条件下的数据进行修改或者判断数据是否存在,存在则修改不存在则插入的,对于这样的逻辑,必须有一个SQL优先级的概念,update\insert的优先级必须高于select,要使用update或者insert来进行逻辑控制而不是select,否则就极容易出现高并发下的数据安全问题;
2015-03-07 18:41:28
915
原创 项目心得(持续更新)
1.必须得坚持自己的原则,坚持合理的项目开发,否则很可能就是挖坑2.由多个模块组成的业务,在不了解其业务的情况下,必须逐个模块的进行修改,等到修改模块稳定了才能进行下一个模块的修改,在修改的过程中快速熟悉业务,为以后的统一修改方案做基础
2015-03-07 18:29:42
514
原创 web应用中获取spring上下文的方法
1)通过session获取spring上下文: ServletContext context = request.getSession().getServletContext(); ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(contex
2015-01-22 10:31:25
1182
原创 weblogic部署javaweb项目遇到的一些问题
1〉weblogic.application.ModuleException:Cannot load driver class:com.t
2014-08-22 15:53:52
8777
原创 java concurrent - semaphore(许可集)的作用
semaphore 作为一个计数信号量,也可认为是一个许可集,通过许可的获取(acquire)和释放(release)来控制访问内容的线程数量;当设置信号量为1时,可以作为一个琐来使用;/** * 模拟乘客车站排队买票(不是使用排队的模式,而是使用争抢买票的模式) * */public class SemaphoreUtil implements Runnable{
2014-04-30 17:23:16
892
原创 网页效果收集
1.amazing counters 特效数字制作网站:http://www.amazingcounters.com/index.php持续更新。。
2014-04-30 10:43:51
614
转载 a标签样式
以前用CSS一直没有遇到过这个问题,在最近给一个本科同学做的项目里面。出现一些问题,搜索引擎查了一些网站和资料,发现很多人问到这个问题,给出的结果我试了试,大部分都不正确。 给出我试的顺序,可能会对大家有一些帮助:代码A:link { color: #000000; TEXT-DECORATION: none}A:visited {
2014-04-28 21:38:02
2827
原创 struts2 + json的包整合
struts2-core-2.1.8 + xwork-core-2.1.6 + struts2-json-plugin-2.1.8.1 可以完美整合;当struts2和json
2014-04-20 22:38:32
1745
原创 String,StringBuffer,StringBuilder运行速度的比较
1.String 是final对象,不会被修改,每次使用 + 进行拼接都会创建新的对象,而不是改变原来的对象;2.StringBuffer 可变字符串,主要用于字符串的拼接,属于线程安全的;3.StringBuilder 可变字符串,主要用于字符串的拼接,属于线程不安全的;可通过以下代码来查看其运行速度:/** * StringBuilder拼接,线程不安全,速度最快(1000
2014-03-07 10:03:29
4892
原创 使用JAVA的程序删除项目中的SVN目录
在项目中使用SVN进行版本控制总是会让项目文件中存在.svn文件,对于项目文件的copy有很大的困扰,因此就写了一个简单的删除.svn文件的小程序public class SvnClean { /** * 删除项目中的.svn目录(目录中有文件需要递归删除) * @param dirName 项目路径 */ public static void cleanSVNDir(Str
2014-02-26 16:30:33
4076
转载 java cxf 设置服务端及客户端
一.CXF通过文件生成客户端1.在浏览器中打开webservice url,保存wsdl文件,如ContentService.xml2.通过cxf命令“wsdl2java –d E:/file –frontend jaxws21 –client C:\ ContentService.xml”生成客户端代码3.若报WSDLToJava Error: Thrown by J
2014-02-13 15:29:16
6327
转载 为tomcat设置指定JDK
1、windows下:修改 tomcat/bin/setclasspath.bat在rem Otherwise either JRE or JDK are fine之前加上set JAVA_HOME = C:\.... jdk路径set JRE_HOME = C:\....\jre Jre路径2、linux环境下修改tomcat/bin/setclasspath.sh在
2014-02-13 13:10:17
948
转载 Java基本类型与byte数组之间相互转换
package cn.teaey.utils;import java.nio.charset.Charset;public class ByteUtil{ public static byte[] getBytes(short data) { byte[] bytes = ne
2014-02-12 18:15:19
1224
转载 ssh通道技术
所有机器均为Linux操作系统。 机器是A,中间服务器为B,目标服务器是C。 从A可以ssh到B,从B可以ssh到C,但是A不能直接ssh到C。 现在展示利用ssh通道技术从A直接传输文件到C。 1. ssh -L1234:C:22 root@B input B's password 2. scp -P1234 filename roo
2014-01-22 10:37:20
1421
转载 java中telnet到远程服务器,然后执行cmd命令
package place.in.javaeye; import java.io.InputStream; import java.io.PrintStream; import org.apache.commons.net.telnet.TelnetClient; public class Shell { private TelnetClient tel
2014-01-21 16:16:07
5944
转载 java 调用 windows 的 cmd 命令
需要爬取的页面,会在每次访问时都在服务器端形成一个excel进程。。。撑不了多久。。服务器就被这些excel进程堵死了,页面根本无法响应。。。。找到页面的开发商,说是windows的bug。。。没有办法关闭。。。后来,从高手那里得到了一条windows命令,可以用来在cmd中关闭excel进程:taskkill -f -im excel.exe在网上搜一下,看看t
2014-01-21 16:12:06
938
转载 java 使用jsch 远程链接linux执行命令
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import com.jcraft.jsch.Channel;import com.jcraft.jsch.ChannelExec;i
2014-01-21 16:08:16
1870
转载 Teradata分页排序
Teradata分页排序 1. 选取排序后的前N条记录Sql代码 1.select top 3 e_name from ptemp.cuishen_temp_20100707 2.order by id www.2cto.com Sql代码1.select top 3 * from ptemp.cuishen_temp_20
2014-01-17 11:34:13
1427
原创 强制设置IE浏览器的版本模式
1. 通过在页面head标签中添加该属性来进行设置;2.对于页面中引入了公共JSP页面的需要在公共JSP页面中也进行设置: var path = "${ctxPath}";var cognosPath = "${cognosPath}";3.对于iframe或者frame加载的页面也需要进
2014-01-07 10:31:34
10713
转载 js在输入框屏蔽按键,只能键入数字
function GetInput(){//屏蔽非数字和非退格符 var k = event.keyCode; //48-57是大键盘的数字键,96-105是小键盘的数字键,8是退格符← if ((k = 48) || (k = 96) || (k == 8)){ return true; } else { return false;
2013-12-18 10:44:00
1214
ws(websocket)例子(xsocket\xlightweb)
2016-04-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人