-
阿里云香港云服务器ECS
公司因为备案没下来,所以先搞了个香港主机把网站挂了上去,其实很早就听说香港服务器不稳定,这次算是领教了。昨天中午差不多就出了问题,这都过去一天半了还没修复,头疼啊。当然虽然香港的服务器这样,但是阿里云其他的地方的好像还是非常稳定的。慢慢来,好事多磨。
阿里云 云服务器ECS -
POI操作Word换行
最近使用了一下POI来处理Word,但是发现换行总是不行。试过了`\r\n`、`(char)11`等等方法,但是都不行。最后发现POI提供了API的,可以直接换行。```javarun.getCTR().addNewT().setStringValue("ACGIST");run.getCTR().addNewBr();//换行```>`run`是`XWPFRun`的对象
POI Word 换行 -
contenteditable
最近用了一下`contenteditable`属性,这个属性可以让一段HTML标签内容可以编辑,非常不错的属性,回车换行时会自动识别使用什么标签。但是发现编辑`span`的时候,会发生移位。原始:删除发生位移:于是我添加了`display:inline-block;padding:01px;`就可以了。>注意:后面的padding一定要有,不然光标不会出现。后来试了几次其实只需要:`padding:01px;`就可以了。如果你不想要拼写检查功能可以加属性`spellcheck="false"`。DEMO地址:[http://www.acgist.com/demo/contenteditable/index.html...
contenteditable -
CSS3动画 - 放大旋转
CSS旋转主要的属性就是`transform`,例如放大两倍:`transform:scale(2);`这个属性不仅仅可以实现发达缩小,而且可以对元素进行平移`translate`以及旋转`rotate`。更多学习请移步到[W3CSCHOOL](http://www.w3school.com.cn/cssref/pr_transform.asp)吧,那里很丰富。DEMO地址:[http://www.acgist.com/demo/animation/index.html](http://www.acgist.com/demo/animation/index.html)最近越来越喜欢CSS3和HTML5了,越来越爱写前端的东西了。
CSS3 -
HTML5拖拽
最近遇到了这么一个问题,需要`html`能够拖动并且能够编辑,编辑加一个`contenteditable`这个属性就可以了。但是拖动出了问题,那就是,拖动的时候元素之间存在问题。原来`e.target`获取到的并不是我想要的元素节点,然后做了一下修改:```javascript/***selector:jquery选择器*parent:拖动的最大父元素选择器**/functiondrag(selector,parent){vart;varsource=$(selector);source.bind("dragstart",function(e){t=$(e.target).closest(parent);e.effectAllowed="move";});source.bind("dragover",function(e){e.preventDefault();});source.bind("drop",function(e){if(source.index(t)==source.index($(e.target).closest(parent))){//防止放到自己里面}elseif(source.inde...
HTML5 -
Java生成、解析二维码
今天研究了一下二维码生成和解析,不过这个解析的方法不好,解析会出现错误。使用QRCode:```javapackagecom.test;importjava.awt.Color;importjava.awt.Graphics2D;importjava.awt.Image;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;importjavax.imageio.ImageIO;importjp.sourceforge.qrcode.QRCodeDecoder;importjp.sourceforge.qrcode.data.QRCodeImage;importcom.swetake.util.Qrcode;publicclassCode{publicstaticvoidmain(String[]args){encode("http://www.acgist.com","D:\\code.png","E:\\workspace\\acgist\\WebRoot\\img\\logo\\logo.png")...
二维码 Java QRCode -
那些震撼的网页效果 - 3D元素周期表
这里整理分享一下我看到的那些前端非常让人惊叹的特效,希望以后也能写出这样惊艳的效果。3D元素周期表:[http://threejs.org/examples/css3d_periodictable.html](http://threejs.org/examples/css3d_periodictable.html)>20220523批注现在看来依旧震撼
JS特效 CSS特效 网页特效 3D元素周期表 -
sessionStorage解决Ehcache页面缓存session登录问题
最近用了一下Ehcache的页面缓存,发现了个问题,头部有显示用户名的情况下,所有页面都显示一个用户名。想了想这个问题,解决办法:*不用缓存,这个也算一种办法,不过这样有点点扯蛋。*每次使用ajax每次都请求一次,这个每个页面都请求一次,感觉也不是很好。*还有就是在客户端保存用户数据了,并且和session的时间是一致的。于是就发现了这个`sessionStorage`,不过不知道和是不是也有时间限制,这个并没有了解。最近好忙,很多自己的事情都做不完整。今天早晨起来看了勇敢的心,这个电影真心不错,希望看到这个文章的朋友也去看看吧!希望你也有一颗勇敢的心,一颗自由的心!我看了一下,发现`sessionStorage`还是要谨慎使用,这个只是在同一个浏览器的TAB中会共享,新打开一个TAB的话,就会消失。如果使用`cookie`来保存数据,不设置过期时间,默认和`session`的时间一样,但是这样带来的问题就是`cookie`会在每次请求都传到服务器。两种解决方案:##使用`cookie`在登录的时候写入一个默认时间的`cookie`保存登录信息,使用`js`来读取`cookie`(注意如果设置了cookie的...
sessionStorage Ehcache session -
ajaxfileupload.js注意
首先我们使用这个`js`的时候,发现`jquery`部分高级版本会出现问题,这个时候我们需要把官方压缩包里面有个`jquery.js`同时引入就可以解决了,先引入高级版本的`js`,再引入压缩包里面的`jquery.js`。然后可能出现问题:**SCRIPT438:对象不支持"handleError"**。这个是因为`jquery`的这个方法旧版本才有,把这个方法添加到`ajaxfileupload.js`里面就可以了。>参考文章:[http://zhidao.baidu.com/question/351817654.html](http://zhidao.baidu.com/question/351817654.html)还有就是IE浏览器如果你是想要一个按钮触发`input`的`click`事件,这样是不可行的,最后会报错:**error:拒绝访问**。这种可以把`input`的透明度调为`0`,然后覆盖到你的按钮那里。>参考文章:[http://stackoverflow.com/questions/793014/jquery-trigger-file-input](http://stack...
ajaxfileupload.js ajax文件上传 -
Nginx静态服务器注意事项
我发现人在蹲坑的时候想事情都很缜密,今天我也不知道怎么突然就想到了,用静态的域名访问服务起的WEB-INF目录,果然能访问,这。。。所以这里记录一下,也希望能够帮助别人。**当你的静态资源没有和项目分开或者你的静态域名可以直接访问到你的项目根目录的时候,要特别小心。**例如:我的项目目录是:`/home/www/acgist/ROOT`Nginx的静态域名指向就是:`root/home/www/acgist/ROOT`然而这样通过我的域名直接就可以访问到我的WEB-INF目录了。果断今天想到了,不然又悲剧了。解决办法:1.可以把你的静态资源放到其他目录2.Nginx配置不能访问WEB-INF目录
Nginx 服务器安全 -
Spring MVC感受
最近用了一下SpringMVC,相比Struts2给我最大的感觉就是SpringMVC的URL太漂亮了,这种风格好像叫RESTFul吧,参数也可以放到URL的路径里面太棒了。不过Struts2也可以使用插件来支持这种URL。当然这也可以看出来Struts2和SpringMVC的区别了,Struts2针对的是action,而SpringMVC针对的是方法。前者通过filter实现,后者通过servlet实现。
Spring Spring MVC Struts -
Hibernate多个字段映射一个属性
最近工作丢了,面试了两家公司也没过,在思考人生。诶,扯远了。其实我确实没事,于是看了一下我的网站代码,看到用户设计那里,我把用户和用户其他信息分成两个表的,其他信息里面包含用户的自我介绍,签名档一些信息。但是用户的个人中心那里每次都会查询出来用户的自我介绍,签名档这些信息,这样每次都有一个关联查询。所以有没有办法可以把用户其他信息放到用户表,但是映射到用户的其他信息这个属性类里面呢?其实我对Hibernate也不是很熟悉,也就是会用罢了,于是我就百度了,但是关键词也不对,找了一下也没找到。好吧,我就把Hibernate映射xml里面的所有关键字一个一个的百度,终于是找到了:`component`,就是这个了。配置文件:```xml```当然如果你不是每次都要查询出来的信息,可以分开一个表,例如我的联系方式我是根据用户是否显示来判断是否查询的,所以可以分开一张表,当然用`component`也可以,因为这个也支持延迟加载。参考...
Hibernate component -
Java使用WebSocket和WebRTC视频通话
**新版的Chrome浏览器,加强了安全性,所以要使用`https`,同时也有很多修改,这个例子已经过时,不能使用。**可以参考新的文章:[WebRTC续集](https://www.acgist.com/article/628.html)这两天终于是抽了时间把WebRTC搞定了,去年就想弄的,但是确实没时间,而且那时候JavaEE的WebSocket还没有规范,网上也都是用的Tomcat自己的WebSocket实现的,或者还使用了一些ajax辅助,JavaEE7中有了WebSocket的规范,Tomcat也支持,所以最近也是写了出来。首先WebRTC,这个可以百度一下,大概就是一个音频和视频通讯技术,可以跨平台,只要能用浏览器的基本都可以使用,当然要你的浏览器支持。但是这东西好像是有规范,但是各个浏览器实现方式有些不一样,我这里主要使用的是Chrome做的例子。DEMO地址在:[http://www.acgist.com/demo/video](http://www.acgist.com/demo/video)>如果很长时间没有加载出来,对不起,很可能是你上不了Google。使用到的javascrip...
WebSocket WebRTC 视频通话 Java -
Arrays.asList注意
今天遇到了一个错误:```javajava.lang.UnsupportedOperationExceptionatjava.util.AbstractList.remove(AbstractList.java:161)```后来Google了一下,原来使用`Arrays.asList`生成出来的这个集合对象是不能进行修改的。如果我们需要修改怎么办呢?我们可以重新`new`一个集合就可以了,如下:```javaListlist=newArrayList(Arrays.asList("a","b"));```
Arrays.asList Java -
Java空指针异常
相信大家多觉得Java的空指针非常简单,很容易排查,但是却又是非常容易忽略的一个错误。今天就遇到了一个比较麻烦的情况,因为使用的是别人打好的Jar,也没有什么语法错误,但就是运行的时候出错:```javajava.lang.NullPointerException```但是一般空指针异常也不应该出现在传递参数的方法这里啊,最后认真看了一下参数才发现,原来接收参数是`int`类型,但是我传入`Integer`类型参数为`null`时,自动拆箱时就会抛出空指针异常。例如:```javapublicstaticvoidtest(intnum){System.out.println("============>"+num);}publicstaticvoidmain(String[]args){Integernum=null;test(num);}```
Java 空指针 NullPointerException -
Hibernate的配置文件打包找不到实体类
公司最近要求把写好的代码打成Jar包,弄好后今天试了一下,居然报错:```javaorg.hibernate.MappingException:Unknownentity:xx.xx.xx.Useratorg.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1092)atorg.hibernate.internal.SessionImpl.locateEntityPersister(SessionImpl.java:2436)atorg.hibernate.internal.SessionImpl.access$2100(SessionImpl.java:172)atorg.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.(SessionImpl.java:2378)atorg.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.(SessionImpl.java:2369)...
Hibernate Maven -
CentOS设置默认语言
今天安装了CentOS研究一下Linux,但是使用VM虚拟机太智能了,丫的我就输入了一下账号和密码,居然把语言,账号,分区等等全部配置好了。本来想学习一下安装的,不过这没什么,但是坑爹的是进去居然是英文,当年我英语150考试作弊也才60分,这不是要我的命。本来我是想找一下system下面有没有setting的,好吧没找到,于是乎网上我找了一下,基本上修改`/etc/sysconfig/i18n`那个文件。还有一个办法就是输入以下命令:```bashyuminstallsystem-config-languagesystem-config-language```修改后重启`reboot`,注销然后登陆好像不行,试了几次,所以我才找到后面那个方法的。参考文章:[https://www.centos.org/forums/viewtopic.php?t=2037](https://www.centos.org/forums/viewtopic.php?t=2037)
CentOS Linux -
PostgreSQL数据库错误
```sqlinsertintotb_b(select*fromtb_awherecln=20);ERROR:column"xxxx"isoftypebigintbutexpressionisoftypecharactervaryingLINE1:insertintotb_b(select*fromtb_awherecln...```遇到了这个问题,以前一直这么写插入的都没问题,怎么回事呢?提示类型不对?纳闷了很久。后来对比两张表发现,原来是修改表的时候字段的顺序不对应了,所以把语句修改为:```sqlinsertintotb_b(clna,clnb,clnc,cln)(selectclna,clnb,clnc,clnfromtb_awherecln=20);```这样就可以了,现在发现SQL当年学的相当马虎啊。需要恶补一下,顺便推荐一个书不错:《SQL必知必会》
PostgreSQL -
Maven编译Struts2源码
前几天修改了Struts2的默认action和通配符的冲突,现在我们就是用Maven编译和打包struts的源代码。首先我们先安装Maven,搭配环境,这个自行Google就可以了。然后解压struts的`xwork-core`,进入到该目录我们修改代码后就可以使用命令编译打包:```bashmvnpackage-Dmaven.test.skip=true```>注意:`-Dmaven.test.skip=true`设置跳过测试,因为里面测试的一些环境不对,编译会失败。修改代码的时候,添加了其他包的类,所有要修改pom添加依赖,否者会提示错误:程序包`org.apache.struts2.dispatcher`不存在,添加以下信息到pom.xml:```xmlorg.apache.strutsstruts2-coreversioncode```>上面的versioncode是你的struts版本,如果还需要其他依赖包可以在[http://mvnrepository.com/](http://mvnrepository.com/)这个网站搜索。在运行上面的命令就ok了。![Maven编译Struts...
Maven Struts2 -
Struts2通配符和默认action冲突
Struts2找不到action的时候就会抛出一下错误:```javaUnabletoinstantiateAction,xxxxAction,definedfor'xxxx/xxxx'innamespace'/'xxxxActionatcom.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:316)atcom.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:397)atcom.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:194)atorg.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)atorg.apache.struts2.impl.StrutsActionProxyFactory.c...
Struts2 通配符 default-action-ref