自定义博客皮肤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)
  • 资源 (5)
  • 收藏
  • 关注

原创 document.write什么时候会清除文档内容?

在调用document.write时,会将内容写入文档流,所以会自动调用document.open方法打开文档流,如果文档流已经关闭,则会清除所有内容。那什么时候代表文档流已经关闭呢?即所有的内容都已经读入到浏览器中(含所有的内联CSS、HTML标签),即页面的主线程没有执行完成,也就是我们所看到的源代码里面的所有内容。以如下的代码为例:<body> <h1>Hello, World!</h

2017-06-30 21:38:43 2391

原创 灵异现象(二):为什么C语言下正常,JS中就求不出素数呢?

求100以下的素数,利用的JS代码如下,但结果只有一个数2。for(var i=2; i<100; i++){ for(var j=1, half = i/2; j <= half ;j++){ if(i%j == 0 && j != 1) { break; } if(j == ha

2017-06-29 23:28:41 345

原创 被低估的BIRT报表(六):报表参数与模糊查询

通过设置报表参数,可以提供更符合客户要求的报表,更重要的是,大大提高了报表的可复用性,在某些环境下,甚至可以将报表直接作为交互界面,提高开发效率既降低开发难度。要在查询中支持模糊查询,以Mysql为例,将数据集的查询语句定义为:selecthostName, memorySizefrom T_CONFIGS_HOST-- 在这里进行模糊字符串匹配 --where hostName like

2017-06-29 19:01:38 1883

原创 被低估的BIRT报表(五):signer information does not match

我不得不好好的吐槽下BIRT官方,你们自己发布的产品,不提供MD5校验值就罢了,但你总得保证产品能运行起来吧。然而实际情况是,直接运行birt.war,报如下错误:Caused by: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes at sun.secu

2017-06-28 18:51:23 2296

原创 被低估的BIRT报表(四):中文乱码的解决办法

为了适应BIRT图形对类别域与值域两个必填项的支持,我们有时需要对SQL进行连接运算,如下:select '已使用' as "USED", sum(overallCpuUsage) as "VALUES"from T_CONFIGS_HOSTunionselect '未使用' as "USED", sum(cpuHz/1024/1024 - overallCpuUsage) a

2017-06-28 18:50:02 2073

原创 被低估的BIRT报表(三):如何做出漂亮的表格

对于报表而言,表格是其最核心的组件之一,做出漂亮的表格几乎是所有报表系统的基本要求,但在事件中,我们经常或做出这样的表格。 或者存在讨厌的双线与间距,而BIRT在这方面做得非常好,最后的效果如下: 做出这样的效果非常简单,步骤如下: 1. 设置好table的左边框与上边框; 2. 创建单元格的样式(style); 3. 设置单元格样式的padding; 4. 设置单元格样式的有边框与

2017-06-28 18:46:04 6995 2

原创 被低估的BIRT报表(二):Birt也可以很漂亮

阅读Birt的源码,我们可以发现虽然Birt的代码技术比较老,但是层次划分非常清晰,在其上进行二次开发是一件非常容易的事。以我定制的birt报表为例,只需要很简单的修正工作,Birt就能变为一件利器,如下: 详细信息请查看我的项目mirana-birt之customer分支,地址信息如下:https://github.com/yiifaa/mirana-birt/tree/customer另外,我

2017-06-27 22:33:07 13104 23

原创 CSS代码(三):巧用counter实现文档的多级编号

在多级编号功能的实现过程中,我们一般采用JS动态递增的方式,或者采用后端编码的方式,然而还有一种更简单的实现方式,用CSS即可轻松实现。如果需要展示的层次结构如下:<ol> <li>item</li> <!-- 1 --> <li>item <!-- 2 --> <ol> <li>item</li>

2017-06-26 23:53:44 556 1

原创 CSS代码(二):巧用content实现文档的防拷贝功能

在浏览器端实现文档的防拷贝是一件比较困难的事,一般需要监听拷贝事件,还需要禁用右键,甚至还要监听键盘事件,即使是这样,只要通过事件注册功能覆盖,依旧可以轻松实现拷贝功能。而充分利用CSS中的content属性,可直接禁用文本选中功能,从而在不影响系统原有功能的情况下,轻松实现文档的防拷贝功能,并且这是浏览器底层支持,且没有事件注册,所以很难破解。以下面的测试文本为例:<p>Hello,</p><p

2017-06-25 22:09:36 1170

原创 CSS代码(一):巧用content实现公式中括号的自动添加

在公式的打印输出中,括号时较难处理的一个环节,稍不注意,就容易遗忘括号的闭合,而结合使用CSS中content与quote属性可轻松实现括号的自动闭合,并能添加自定义样式。以要输出下面的公式为例:{a * [b / (c + d)]} 首先设计如下的HTML结构:<i class="quote">a* <i class="quote">b / <i class="quote

2017-06-25 22:06:57 2447

原创 R统计笔记(五):数据对象之间的转换

习惯了语法严谨的高级语言,例如Java、Javascript,切换到R语言,理解其数据对象之间的转换绝不是件容易的事。在R语言中,向量是最基本的原子类型,不能通过$表达式获取相关属性,否则将出现以下错误:Error in xs$levels : $ operator is invalid for atomic vectors1. 因子与向量互转weekdays <- c('星期一', '星期二',

2017-06-25 19:58:45 1737

原创 伪造链接地址的二种方法

在浏览器的涉及中,为了防止链接地址被伪造,浏览器一般会在状态栏显示地址信息,但可惜的是,显示的地址信息是静态的,也就是说,浏览器难以发现地址的动态变化,截图如下:针对浏览器的这种特性,我们可以很容易伪造出与浏览器状态栏地址信息不同的链接,示例代码如下:<a href="http://www.sina.com.cn" id="sina">新浪</a>方法一:利用mouseup事件通过组合使用mouse

2017-06-25 11:11:00 8196

原创 Eclipse中Tomcat频繁报错的解决办法

在Web应用程序的开发中,一旦修改JSP文件或静态资源文件,Tomcat服务器则不断提示错误,大意为某某日志文件被其他进程锁定,无法删除更新,并且这种提示是中断性的,需要用户确认终结,十分影响工作效率:Publishing failed with multiple errorsCould not delete C:\DTools\STS\pivotal-tc-server-developer-3.

2017-06-24 22:25:25 1519

原创 Javascript试探(一):无法覆盖的native code

在JS中,Object、String、Number等内置类型并不属于语法关键字,既然这样,那它们可以被覆盖吗?以一段企图统计JS对象数量的代码为例,如下:var count = 0;// 没有语法错误function Object() { count ++;}应该说,这段代码对于统计Vue、React这样的组件对象应该是适用的,毕竟程序的入口掌握自己手里,但是对于Object、Str

2017-06-24 21:59:16 5013 1

原创 JAVA 8函数式编程(二):每个函数都是可以传递的对象

在Java 8中,每个函数都是可以传递的对象,包括静态函数、实例函数与构造函数,唯一需要确认的就是,要传递的函数必须与需要的函数签名一致。首先定义函数接口如下:@FunctionalInterfacepublic interface HelloService { void sayHello(String username);}上面的函数接口只需要一个String参数,所以只要满足此要求的函

2017-06-23 23:19:11 7294 2

原创 $.ajax使用总结(三):在Spring MVC中实现文件上传

其实这样的代码已经烂大街了,客户端代码如下:let url = UrlService.url('home/upload'), fileInput = document.getElementById('file-input'), // 必须创建表单数据 data = new FormData();// 也可以添加其他数据 data.append('username

2017-06-22 19:12:07 703

原创 JS基本类型与无法定义的属性

在浏览器中,变量一旦声明为基本类型,则再也无法为其添加其他属性,示例如下:// 变量一旦声明为基本类型,则无法添加属性 var username = 'yiifaa'username.from = 'china'// 输出为undefinedconsole.log(username.from)改为严格模式,再测试如上代码:"use strict";var username = 'yi

2017-06-22 19:10:47 4577

原创 一种将枚举Enum转换为JSON对象的方法

Jackson ObjectMapper默认将枚举类型Enum转换为它的名称,亦即为字符串,比如将枚举SUCCESS(“SUCCESS”, 200)输出为“SUCCESS”,这丢失了很多额外的信息,并且前端也不易处理,如将服务器返回状态定义为枚举:public enum ActionStatus { SUCCESS("SUCCESS", 200), FAIL_500("FAIL", 500);

2017-06-22 19:09:24 39600 3

原创 灵异现象(一):为什么POM文件一样,只有我的架包出错

两台机器,一模一样的操作系统,一模一样的JDK,一模一样的Eclipse,一模一样的POM文件,一模一样的代码,但是一台机器运行正常,另一台机器却提示如下错误:java.util.ServiceConfigurationError: org.jclouds.apis.ApiMetadata: Provider org.jclouds.openstack.keystone.v2_0.KeystoneA

2017-06-22 19:08:02 717 1

原创 为什么SimpleDateFormat不是线程安全的?

查看DateFormat的format(Date date)源码,我们可发现实现如下:/** * 格式化日期 */public final String format(Date date) { return format(date, new StringBuffer(), DontCareFieldPosition.INSTANCE).toStrin

2017-06-20 15:41:11 3843

原创 $.ajax使用总结(二):伪造IP地址

在JAVA与PHP的程序中,为了保证IP的正确性,经常采用如下的方法获取浏览器端的IP地址,代码如下:String ip = request.getHeader("x-forwarded-for");if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("

2017-06-20 15:17:18 6764 2

原创 Vue的加载顺序探讨(二):如何判断所有的子组件加载完成

在父子组件的配合使用中,尤其是配置信息与业务信息相分离的情况下,我们经常需要在所有的子组件加载完成后,再执行父组件的相关服务,以如下的组件结构为例: <jq-grid :url="url" col-size="5" :sub-grid="true" ref="accountGrid" :on-ready="initGrid" :query="queryParams"> <jq-col labe

2017-06-20 15:16:12 33248 3

原创 被低估的BIRT报表(一):编译源码

坑点一:多余的源码坑爹啊,你为何在源码里加入org.eclipse.birt.report.viewer包,而在发布的二进制jar包(viewservlets.jar)中却又删除此包及子包,让我浪费了整整二天的时间来排查问题。坑点二:不一样的icu架包从Maven仓库下载icu架包时,如下的配置检查了好多遍都没错,但就是无法编译,缺少相关类com.ibm.icu.text.MessageFormat

2017-06-20 15:14:41 2559

原创 $.ajax使用总结(一):Form提交与Payload提交

后端处理前端提交的数据时,既可以使用Form解析,也可以使用JSON解析Payload字符串。Form解析可以直接从Request对象中获取请求参数,这样对象转换与处理相对容易,但在大片JSON数据需要提交时,可能会出现大量的数据拆分与处理工作,另外针对集合类型的处理,也是其比较孱弱的地方。而Payload的优势是一次可以提交大量JSON字符串,但无法从Request从获取参数,也会受限于JSON解

2017-06-19 15:27:57 17845

原创 JS中一种快速浅复制数组的方法

今天,偶然在Javascript的练习中,发现了一种数据快速千夫指的方法:var array = [1, 2, 3, 4, 5], copy = array.slice();// 输出结果为false,说明它们指向了不同的数组对象 alert(array == copy)查阅JS手册,发现对slice方法的说明如下:返回值返回一个新的数组,包含从 start 到 end (不包

2017-06-18 20:36:03 5524

原创 JAVA 8函数式编程(一):高阶函数

函数式编程的核心在高阶函数与偏函数,在JAVA 8中,提供了很多函数式的接口,但跟Python、Javascript的函数相比较,还是存在较大的距离。首先看一个高阶函数的例子,这里利用局部变量域特性,进行延迟求值,如下:/** * 输入一定数量的参数,然后统一求值 * @param size 需要求值的个数 * @param fn 求值函数 * @return 函数对象 * 从函数的定义

2017-06-18 20:26:11 8971

原创 三句话总结JAVA泛型通配符(PECS)

在JAVA的泛型集合中,默认都可以添加null,除此以外,还有以下三条规则。1. “?”不能添加元素以“?”声明的集合,不能往此集合中添加元素,所以它只能作为生产者(亦即它只能被迭代),如下:List<?> names = Lists.newArrayList("yiifaa");// 通配符声明的集合,获取的元素都是Object类型List<Object> allNames = Lists.

2017-06-18 16:24:29 9391 1

原创 R统计笔记(四):中括号与双中括号的差异

理解的差异首先从语言方面开始,如果你有其他语言的惯性思维,比如JAVA、C或者Javascript,那对R语言中括号的理解,简直就是匪夷所思。1. 所有的对象都可以引用中括号是的,你没有看错,R语言中所有对象都可以引用中括号,包括标量(常量),如下:# 标量第一个元素总是指向自己# 下面的表达式恒为真1[1] == 1# 既然上面的等式成立,那么下面的等式也成立1[1][1] =

2017-06-14 22:26:05 35770 4

原创 文章标题JAR文件签名认证失败的解决办法

在Birt Java EE程序的部署中,竟然无法启动,Tomcat提示如下错误:org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/birt]]

2017-06-14 16:06:09 3873

原创 Spring中MXBean已注册的解决办法

在基于Spring框架的应用中,自己实现了基于commons-pool2的连接池,结果在Spring Boot的启动中,提示此类已注册,无法建立此MXBean,启动失败。org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [mirana.cloud.vmware.Connect

2017-06-14 16:04:10 10737 2

原创 一种字符串合并与拆分的方法

有个REST接口,能提供中文繁体到中文简体的转换服务,为了提高转换效率,需要将多个字符串合并为一个字符串,进行转换后再进行拆分,请提供一种字符串合并与拆分的解决方案。通过审题,实现方案的核心在于分割字符串的设计方案,简单的方法有: 1. 提供业务中不可能出现的字符,比如日文字符; 2. 充分利用JSON.stringify与JSON.parse特性,实现字符串的编码与解码;除此以外,还可以设计一

2017-06-13 22:49:12 4363 2

原创 URL地址中含有点号导致参数解析错误的解决办法

在Spring MVC中,Controller的配置如下:@Controllerclass IndexController { @RequestMapping("/{ip}") public Model detail(@PathVariable("ip") String ip) { // 对IP进行处理 Model model = IpService

2017-06-12 23:51:38 9527

原创 javax.net.ssl.SSLHandshakeException的解决办法

在SOAP协议的连接过程中,出现如下错误:Caused by: BaseConnection$BasicConnectionException: failed to connect: HTTP 传输错误: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building

2017-06-12 23:32:06 74210 10

原创 R统计笔记(三):分组统计的几种方法

1. 使用tapply函数# INDEX相当于groupBytapply(salarys$SALARY, INDEX=salarys$SEX, FUN=sum)如果出现参数的长度不一致的错误,如下:Error in tapply(salarys$SALARY, INDEX = salarys$SEX, FUN = max) : 参数的长度必需相同请仔细检查salarysSALARY、sa

2017-06-11 18:42:51 40222

原创 R统计笔记(二):投影运算与转换

1. 中括号选择相关列选择全部列的方法如下:salarys[,]只选择一列的方法是:salarys['ID']选择多列必须要使用c函数,方法如下:# 错误的写法

2017-06-11 18:40:57 2793

原创 R统计笔记(一):获取统计数据

1. 从文件中获取数据R语言可以支持非常多的文件格式,比如文本文件、CSV等,默认支持CSV格式,如下:salary <- read.table('Salary.csv', header = TRUE, sep = ',', quote = '\"')2. 从数据库中获取数据

2017-06-11 18:38:51 1039

原创 开发时数据库连接失败的解决办法

在开发过程中,突然发现自己和周围的小伙伴总有一定的概率连接不上,并且机会很随机,提示如下错误:Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Unable to open JDBC connection for schema management target at org.hibernate.tool.

2017-06-07 19:09:03 10813

原创 Spring MVC AJAX提交数组的解决办法

WEB框架采用Spring MVC,用AJAX提交数据时,提示如下错误:{ timestamp: "2017-06-07 18:36:10", status: 500, error: "Internal Server Error", exception:"java.lang.NumberFormatException", message:"For inpu

2017-06-07 19:06:59 1128

原创 设置Spring Boot上下文(ServletContext)的三种方式

1. 设置application.properties文件在application.properties文件中添加如下内容:# 如果无需修改默认端口,此配置可不要server.port=8080# 配置次路径后,所有的资源访问路径都会加上/app前缀server.context-path=/app需要注意的的,配置了server.context-path路径,所有的资源,请注意,包括静

2017-06-06 16:38:26 32244 5

原创 Spring @Profile总是无法激活的解决办法

利用Spring Boot作为开发环境,Tomcat部署作为生产环境,由于上下文处理及默认的配置冲突,导致生产环境与开发环境存在较大的差异,不可避免地就要采用@Profile,配置如下:<beans profile="dev"> <bean class="com.cnitsec.mirana.security.domain.Account"> <property name="

2017-06-06 16:25:01 4547

libgcrypt11_1.5.3-2ubuntu4_amd64

libgcrypt11

2016-12-14

Chrome代理快速切换工具

Chrome代理快速切换工具,支持多个代理,以浏览器插件方式进行安装。

2016-12-06

Weblogic证书登陆配置

在事业机关与政府组织机构中,WEB程序支持HTTPS证书登陆已成为基本需求,本文以Java技术为例,由浅入深,详细讲解证书登陆的原理及具体应用。

2016-07-09

syntaxhighlighter可执行库与示例

syntaxhighlighter是一个强大的语法高亮器,但是需要自己编译,较为繁琐,我把其编译为一个架包,并提供了相关的DEMO。

2016-07-06

Weblogic 兼容JPA相关架包架包

Weblogic不能兼容JPA2.0,引用资源及相关路径设置,内包含详细的操作说明

2016-06-02

空空如也

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

TA关注的人

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