自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 记一次安全事故排查

项目组有个项目管理网站wss,搭建在公网之上,今天上班的时候发现访问网站时会跳转到一个广告页面(原地跳转,而不是打开一个新的页面)。 嗯,这就是现象。下面记录一下整个排查过程。使用Chrome查看网络数据是如何交互的,但是这个方法无效,因为在原地跳转的一瞬间,chrome中网络的数据就已经更新了,而我们希望看到的是如何跳转到这个广告页面的。使用wireshark,过滤,抓包,终于看到,在获取到

2016-03-31 10:52:39 770

原创 [leetcode-332]Reconstruct Itinerary(java)

原题:这里写链接内容分析:这到头应该使用DFS进行搜索。尽管写过很多次递归程序,可是每次遇到他还是觉得很发憷,递归的过程中要注意两个点,一个是边界点,一个是状态恢复的过程。public class Solution { HashMap<String,List<String>> maps; int count; public List<String> findItinerary

2016-03-30 23:21:06 1310

原创 Longest Substring with At Most K Distinct Characters

这道题要求给定一个字符串,然后一个k,求一个最大子串的不重复的字符不大于k的最大子串长度分析:这道题本质要维护一个窗口,即要维护一个hashmap,key为字符,value为窗口内的该字符的个数,然后在窗口扩张过程中,检查chars[end]是否被包含在map中,或者map的大小是否小于k,如果是直接添加;否则就要转为收缩,即start开始收缩,直到到达合适位置public class Soluti

2016-03-29 21:16:24 1094

原创 使用spring测试模块搭建自动测试平台

老大给了这么个任务,搭建一个自动测试平台,他希望的效果是,在改动代码之后,可以一键进行测试,想想看,这个东西是很有意义的,总不能改动一点代码,就要从页面上重新走遍回归测试吧?太傻了。于是调研了一些Spring的测试模块。 Spring的测试模块主要存放在org.springframework.test包下,它包括了集成测试和单元测试,这里我只处理了集成测试,原因有几点:处理起来简单,在构造HTT

2016-03-29 20:06:38 510

原创 [leetcode-335]Self Crossing(java)

原题:https://leetcode.com/problems/self-crossing/public class Solution { public boolean isSelfCrossing(int[] x) { int length = x.length; for(int i = 3;i<length;i++){ if(i

2016-03-29 15:42:38 632

原创 分析MockHttpServletRequestBuilder中content和param的区别

最近在做一个自动测试的平台,使用的是Spring的自带测试库。如何使用,这里不再说了,网上有很多,推荐开涛写的博客我的主要测试代码://主要构造mock请求类,可以不用看try { for(TestClass tmpClass:classes){ List<TestUrl> urls = tmpClass.getUrls();

2016-03-28 17:06:31 13936

原创 [leetcode-337]House Robber III(java)

原题:House RobberIII对于这种树形结构,应该很容易想到使用递归的方法,这里的难点在于递归的时候相邻点不能同时访问,因此我写成了第一种做法,也ac了,但是这样并不好,因为它对很多点都会重复遍历。于是在网上看到了第二种写法,很优雅,它定义了一个数据结构,对于当前节点,如果不使用该节点会拿多少钱,如果使用该节点又会多少钱。 很显然,对于一个节点而言,比如root, 那么rootMoney

2016-03-27 22:19:41 1790

原创 [leetcode-338]Counting Bits(java)

原文地址:https://leetcode.com/problems/counting-bits/分析:这道题要求给定N,然后计算从0到N之间所有的数的bit为1的数,并要求时间复杂度为O(N),因此对于每个数,然后求它的bit数的方法是不可取的。 所幸,当我们把数从0到N写出来时很容易发现规律,即对于2^N的数,末尾N-1位的重复规律,正好等于前N-1个数的重复规律,而这时只需要加1即可。pub

2016-03-27 20:42:54 2052

原创 Java使用Graphics2D生成公章

用了大半天的时间才把这个公章做好,个人感觉这里面需要比较多的数学知识,当然都是比较简单的了。Graphics2D根据API上的说法是,在使用Graphics2D类库的时候,这是进行操作的主要类,类似于提供了一种context。Graphics2D为抽象类,继承自Graphics类,所以在操作前,需要先获取一种可以操作的对象,然后再创建Graphics2D对象。 Graphics2D可以支持三种操作

2016-03-23 09:40:37 12631 3

原创 利用JQuery在网页上打印PDF

项目需求是这样的,在HTML网页上点击打印,然后弹出chrome打印窗口,窗口中是后台生成的PDF文件。其中PDF文件是由后台servlet生成的。 第一种想法是,点击打印时,弹出一个新的窗口window.open(url,"_blank");//url为生成PDF的url在这个新的页面中有PDF文件的内容,而且网页上也刚刚有打印的功能,这种看起来是最简单的,但是对用户而言,需要点击二次按钮才能真

2016-03-21 15:45:08 15307 10

原创 通用JSON生成器3

接上文通用JSON生成器,上文给出了一个JSON生成器,用了一段时间,感觉还是有两个地方还不太爽。待生成的属性必须是public的,否则是获取不到该属性的值的。对时间如Date类型的不大友好,因为我们希望能够输出一种自己指定的Date数据格式针对以上两点,我又重新写了一下:首先,更改Output注解,添加一个pattern域,并设定一个默认值。更改GenerateJSON中获取数据方式,之

2016-03-15 19:35:39 796

原创 Spring框架中CharacterEncodingFilter的作用真的没那么大

之前看介绍Spring框架的时候,提到了Spring中内置了几种过滤器,其中有一种是CharacterEncodingFilter的过滤器,是将数据以某种格式编码的方式输出的。这个特性让我很兴奋,因为在WEB系统下,字符编码的格式是一定要面对的。所以我尝试了一下,结果很失望。在web.xml中添加了如下内容 <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码--> <fil

2016-03-14 14:42:16 16263 6

原创 通用JSON数据生成器2

前几天写了一个通用JSON生成器,但是用着用着觉得意犹未尽,不是特别顺手。原因有二:上个方法要求filed的域就是json数据中的域名称,这样很受限,特别是在发送给前端、或者JNI时,可能C语言的风格是使用下划线,而不是驼峰法,比如userName是java风格,而user_name则C语言常常用,那么,如果要让我把filed名字都变成user_name这种形式,我会受不了的。对于有些域而言,可

2016-03-12 11:25:19 2014

原创 从一个问题看MySQL的权限访问控制

首先提出一个问题:假设一个root管理员创建了一个用户admin,然后授权admin访问test数据库下的所有表权限,在test下创建一个表test_table(id int,age varchar(20));然后可以插入些数据,此时root管理员将这个数据库删除。当然了,此时admin登录的话,show database肯定是看不到test的。那么此时root再登进去,再创建test数据库,然后在

2016-03-11 10:29:11 1974

原创 使用公开密钥机制进行会话密钥

当我们在进行通信的时候,常常需要在C/S两端分配一个会话密钥,然后利用对称密码算法对通信的数据加密,当然了,也可以使用非对称加密算法,但是非对称加密会使加密速度降低了一个数量级,因此并不适用。那么如何安全的在不安全的信道中分发会话密钥呢? 有两种方式,一种使用共享密钥机制,这样的协议很多,比如D-H密钥分配协议、kerberos认证协议等等。但是使用共享密钥进行会话密钥的分发很麻烦,而且还有各种漏

2016-03-09 23:59:13 6407

原创 公钥的管理

在认证方面,经常会出现这样几个词:CA、证书、PKI、X.509等等,每次一看到这些词就头大,今天我试着将这几个词理一下。 1、A要与B安全通信,现在A需要知道跟它现在通信的到底是B还是别人,也就是说A并不信任B 2、B要向A出示自己的证书,然后B说这是我的证书,签字的单位(认证单位)是C单位。 3、那么A查看自己的信任域,看看自己到底信不信任C单位,假设不信任C单位。 4、A向C单位请求查

2016-03-07 23:35:16 2335

原创 通用JSON数据生成器

在一个项目中通常会有很多数据是需要通过封装成JSON格式进行传输的,但是在封装JSON的过程中,不仅繁琐,而且也不美观,于是构建了一个JSON数据生成器,用户只需要定义好要传输数据类,然后通过调用封装类即可得到JSON字符串。代码通过使用反射+泛型的方法来完成。在类中的静态方法中,都需要传入参数T t,Class tClass才可以。原因在于在泛型中数据类型会被擦除,因此需要显式的传入对象的类信息;

2016-03-06 22:56:54 8910

原创 String.split()到底怎么回事

我们常常使用string.split方法进行分割字符串,使用最多的可能就是根据空格进行分割了。即split(” “);但是每次使用的时候,都感觉虚虚的,不知道它到底是怎么分割的。 今天看了一下源码,核心代码是这样: int off = 0; int next = 0; boolean limited = limit > 0;

2016-03-06 22:13:38 495

原创 ProcessBuilder中如何为命令行传参

项目中有个需求是备份数据库,备份数据库很自然的想到使用mysqldump进行转储,那么问题的关键就变成了如何在java中调用mysqldump命令,一搜才知道通过开启一个本地的进程,来执行该命令即可。 Process的产生有两种方式:Runtime.getRuntime.exec(cmd),另一种是通过ProcessBuilder builder,builder.start()。 Process

2016-03-03 19:50:19 10726 2

空空如也

空空如也

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

TA关注的人

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