- 博客(29)
- 问答 (1)
- 收藏
- 关注
原创 从放弃迅雷和IDM到自己开发下载工具
前言在这个网络带宽飞速增长的年代,下载文件要充分利用好网速就得用到下载工具,比如迅雷、IDM。然而贫穷限制了下载速度,这两个下载软件不花钱毫无体验可言。本人两年迅雷年费会员在离线下载越来越形如虚设的情况下,选择投入了IDM的怀抱,然而IDM丑陋的界面和破解版的无限弹框让我产生了开发一款属于自己下载器的想法。成果没图说个xx,下图是在20M带宽的情况下载网盘文件的过程,可以看到网速基本跑满。下载试用,
2017-12-08 16:54:52
5909
原创 JAVA写HTTP代理服务器(三)-https明文捕获
很久没更新了,其实https明文拦截已经实现很久了只是没发博客(毕竟我太懒),步入正题吧,上一篇用netty实现的http代理服务器还无法对https报文进行解密,原因也说了,就是服务器的私钥不在我们这,根据RSA公钥加密私钥解密的特性,如果我们没有私钥的话是不可能获取到https的真实内容的,那有没有什么办法解密https的报文呢,当然有通过代理服务器伪造ssl证书就可以达到目的,那么具体是什么原
2017-10-31 17:50:22
3662
4
原创 从JVM中dump出动态代理生成的class
由于动态代理生成的class是直接以二进制的方式加载进内存中的,并没有对应的.class文件生成,所以如果想通过反编译工具查看动态代理生成的代码需要通过特殊的手段来处理。方案一设置运行环境变量,运行后会把class文件生成在classpath目录下//动态代理时生成class文件System.getProperties().put("sun.misc.ProxyGenerator.saveGene
2017-10-18 14:30:29
2032
原创 OpenSSL创建带SAN扩展的证书并进行CA自签
什么是 SANSAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。来看看百度的证书,百度证书的扩展域名有这么多,其中还有了*.hao123.com,那我们再看看www.hao123.com的证书 发现的确是用的前面的百度证书 所以SAN带来
2017-09-20 15:42:49
13642
原创 JAVA写HTTP代理服务器(二)-netty实现
接上一篇,因为是用BIO的一个连接一个线程去处理,对于HTTP这种短连接协议来说CPU开销是非常大的,就算加入了线程池也不能完美解决BIO的缺陷,所以可以用NIO进行服务器的优化,NIO基于IO多路复用以实现单线程处理大量连接,但是编写起来比较复杂,所以就选择了netty,这里就不在多叙netty是什么了。思路netty有内置的http编解码器,那就可以轻易做到不只是转发原始数据,而是可以修改响应
2017-09-04 16:13:49
13783
2
原创 JAVA写HTTP代理服务器(一)-socket实现
HTTP代理服务器是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。HTTP 代理有分两种:RFC 7230 - HTTP/1.1: Message Syntax and Routing(即修订后的 RFC 2616,HTTP/1
2017-09-04 16:12:40
35249
11
转载 linux查找日志技巧
先必须了解两个最基本的命令:tail -n 10 test.log 查询日志尾部最后10行的日志;tail -n +10 test.log 查询10行之后的所有日志;head -n 10 test.log 查询日志文件中的头10行日志;head -n -10 test.log 查询日志文件除了最后10行的其他所有日志; 场
2017-07-06 10:24:51
317
原创 tomcat请求url中带有特殊符号{}|返回400的问题
根据rfc规范,url中不允许有 |,{,}等特殊字符,但在实际生产中还是有些url有可能携带有这些字符,特别是|还是较为常见的。在tomcat升级到7以后,对url字符的检查都变严格了,如果出现这类字符,tomcat将直接返回400状态码。解决方案:在tomcat目录/conf/catalina.properties下找到并修改tomcat.util.http.parser.
2017-06-27 14:09:48
5882
原创 mysqldump导出所有数据库+忽略特殊数据库
1.mysqldump导出所有库mysqldump -uroot -ppassword -A > mysql_dump.sql2.导出所有+忽略特殊库mysql -e "show databases;" -uroot -ppassword | grep -Ev "db1|db2|test" | xargs mysqldump -uroot -ppassword --databases
2017-06-16 10:37:06
9506
原创 实战mycat读写分离和分库分表(2)-本地mysql主从配置
接上一篇实战mycat读写分离和分库分表(1)-本地mysql多实例搭建上一篇已经跑起了4个mysql实例,本篇的目的是配置mysql一主多从同步,mysql-m1为主,mysql-s1、mysql-s2、mysql-s3为从。1.创建mysql-m1的slave用户 mysql -P3306 -uroot -p123456 GRANT REPLICATION SL
2017-05-21 23:18:29
1416
原创 实战mycat读写分离和分库分表(1)-本地mysql多实例搭建
前言由于公司业务不断扩大,数据量也在不断提高,现有的架构(单库mysql)在性能上已经不能满足日常查询需求,所以借这个周末在本地搭建了一套基于mycat的mysql集群环境的流程,可以做到多主-多从,
2017-05-21 22:30:25
1159
1
原创 mysql5.7 You must reset your password using ALTER USER statement before executing this statement.
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.参考自:https://dev.mysql.com/doc/refman/5.7/en/alter-user.html需要用ALTER USER重置一次密码才能执行sql语句,
2017-05-20 14:47:15
5297
原创 quartz里job不执行的解决方案
使用框架spring3+quartz1.8生产环境中碰到会有job一直不执行的情况,后来分析是因为quartz中线程总数太少,而项目中所有的job都是并发执行的就会导致当到达时间节点时如果线程已经用完,则JOB不会执行等到下次job执行时间节点,如果项目中存在很多job执行过程耗时比时间周期还长就会导致这种情况发生。解决办法1.更具实际情况动态调整quartz线程池大小这样就不
2017-04-27 11:38:47
24988
2
转载 全面了解Nginx到底能做什么
转自http://www.raye.wang/2017/02/24/quan-mian-liao-jie-nginxdao-di-neng-zuo-shi-yao/前言本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得。所以还请见谅,同时欢迎留言交流Nginx
2017-02-25 15:03:49
476
转载 推荐几款DevTools插件
转自:https://segmentfault.com/a/1190000000494090Web前端开发过程中必然会用到Chrome浏览器自带的开发者工具Chrome DevTools,使用它作为Web前端开发性能调试的必备工具。就连隔壁的产品小哥都知道打开F12改一下页面元素的标签代码就能看到页面效果,这年头谁不会用Chrome开发者工具呀。但是Chrome能做的远不止你平常用
2016-12-07 17:30:35
2897
转载 MySQL 加锁处理分析
转自:http://hedengcheng.com/?p=7711 背景 11.1 MVCC:Snapshot Read vs Current Read 21.2 Cluster Index:聚簇索引 31.3 2PL:Two-Phase Locking 31.4
2016-10-28 10:20:01
135
原创 mysql 调用函数碰到Illegal mix of collations的解决办法
执行函数碰到下面图片的问题原因是函数中参数的字符集排序规则与函数里查询用到的表的不兼容,表中的是utf8_general_ci而函数默认的是mysql全局设置的utf8_unicode_ci,现在修改函数中参数的字符集和排序规则保持与表的一致。以上。解决问题
2016-09-29 10:27:37
2900
转载 Myeclipse tomcat部署项目至根路径INVALID的问题
情况如下图1、eclipse项目:在项目的.settings目录下,找到org.eclipse.wst.common.component文件:xml version="1.0" encoding="UTF-8"?> id="moduleCoreId" project-version="1.5.0"> deploy-name="twovs">
2016-07-07 19:35:44
2348
原创 MyEclipse调试maven第三方jar包源码
在项目中用mybatis的时候发现一个问题,然后maven加载了源码,但是调试的时候看不到源码。网上查了下是要设置tomcat里面source路径。默认是这样的:把Default项目删除添加自己的web项目进去保存后再调试,就可以跳进mybatis源码中了
2016-06-17 11:03:32
2061
原创 jQuery用contents方法取非DOM节点中的文本内容
现在有以下HTML代码,要取出DIV中非p标签的文本 aaaaa iiii bbbbb$("div").contents().each(function(){ if(this.nodeType==3){ console.log($(this).text()); }});输出结果如下,不会包含p标签中的文本内容aaaabbbb
2016-04-23 15:48:33
945
原创 MySQL分组排序查前N条数据
学生成绩表:score要查询出每个学生考的最好的三次记录SELECT a.*, b.rownum FROM score a LEFT JOIN ( SELECT id, CASE WHEN @mid = student THEN @ROW :=@ROW + 1 ELSE @ROW := 1 END rownum, @mid := student mid FROM ( SELECT
2015-12-09 20:47:50
2203
原创 JAVA用Socket模拟HTTP文件上传
根据RFC1867协议模拟HTTP文件上传try { String host = "127.0.0.1"; int port = 8080; Socket socket = new Socket(host,port); StringBuffer buffer = new StringBuffer();
2015-11-10 11:23:25
1178
转载 初学linux ubuntu下搭建ftp
FTPUbuntu装vsftpd还是很简单,一句命令就行:sudo apt-get install vsftpd命令执行过程中,安装程序会给本地创建一个名为“ftp”的用户组,命令执行完之后会自动启动FTP服务。可以使用“netstat -tl”命令检查FTP端口有没有已经打开,或者直接在浏览器里输入“ftp://你的服务器IP”(新安装的vsftpd默认是可以匿名不需要密码直
2015-03-24 20:24:41
439
转载 Oracle 迭代查询 CONNECT BY PRIOR ……START WITH ……
connect by prior start with 经常会被用到一个表中存在递归关系的时候。比如我们经常会将一个比较复杂的目录树存储到一个表中。或者将一些部门存储到一个表中,而这些部门互相有隶属关系。这个时候你就会用到connect by prior start with。 表结构:create table TB_ORG( ORGID VARCH
2014-03-24 11:15:47
947
原创 ORACLE中的rank函数
Rank的基本语法为: RANK ( ) OVER ( [query_partition_clause] order_by_clause )用于分组排序学生成绩表score现在有以下字段和数据:name type score小黑 语文 80小黑 语文 77小黑 语文 90小黑 语文 78小黑 语文 69王二
2014-03-17 13:41:30
952
原创 基于Tesseract-OCR实现的JAVA WEB版OCR(图片转文字)
首先在Tesseract-OCR官网下载Tesseract-OCR 3.02,以及中文数据包chi_sim.traineddata(简体)接下来就是新建一个JAVA EE项目,把Tesseract-OCR放在项目WebRoot下。下面是主要代码:接受客户端上传过来的图片,使用Tesseract-OCR识别后返回至前台。package servlet;import java.io
2014-03-06 11:49:56
5582
原创 学习Swing做的打飞机小游戏
下面是代码package game;import java.awt.Color;import java.awt.Graphics;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;i
2014-03-06 11:18:49
1482
空空如也
JAVA从数据库里查了1000个对象数据要显示在页面中,怎么才能提高速度
2014-07-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人