Java
文章平均质量分 80
shixing_11
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java判断文件类型
通常,在WEB系统中,上传文件时都需要做文件的类型校验,大致有如下几种方法:1. 通过后缀名,如exe,jpg,bmp,rar,zip等等。2. 通过读取文件,获取文件的Content-type来判断。3. 通过读取文件流,根据文件流中特定的一些字节标识来区分不同类型的文件。然而,在安全性较高的业务场景中,1,2两种方法的校验会被轻易绕过。1. 伪造后缀名,如图片的,非常容易修改。2. 伪造文件的Content-type,这个稍微复杂点,为了直观,截图如下:3.较安全,但是要读取文件,并有16进制转原创 2010-07-02 00:19:00 · 57118 阅读 · 8 评论 -
Java序列化学习笔记
Java 对象序列化为二进制文件的技术是 Java 系列技术中一个较为重要的技术点,在大多数情况下,只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStream 进行序列化和反序列化即可。一. 序列化的ID,请看如下代码片段一:public class Person implements Serializable{ private static final long serialVersionUID =原创 2011-03-11 14:18:00 · 1135 阅读 · 0 评论 -
利用Jimi进行图片缩放操作
Java中缩放图片的方法比较多,如JDK本身读写图片,或者使用第三方Jmagic,或者 thumbnails等。Jimi也是另外一种通过java调用操作图片的工具包。使用方法如下:import java.awt.Image;import java.awt.image.B原创 2011-08-03 18:12:07 · 3496 阅读 · 1 评论 -
Jboss配置远程调试
开发中,往往发布的应用与开发环境的环境有差异,测试环境报的问题在开发环境很难重现,也很难定位问题,如果报错,是程序问题还是环境问题,常常是让开发头痛的事。拿我们项目来说,测试环境用的服务器是JBOSS,而开发环境是Jetty或者Tomcat,既然这样,而测试的服务器我们都没有原创 2011-08-05 11:17:00 · 9022 阅读 · 1 评论 -
知识积累1:tomcat的URIEncoding的作用
tomcat5中,为了保证get数据采用UTF8编码,在server.xml中进行了如下设置:maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debu转载 2011-09-14 22:17:32 · 1523 阅读 · 0 评论 -
编译工程时报java:[1,0] illegal character: \65279问题排查与解决过程
最近开发人员通过SVN提交了xxx.java文件,因发布时该包有问题需要回退,故SCM将该xxx.java文件用editplus打开删除了新添的一行,删除后重新编译打包,却报了如下异常:java:[1,0] illegal character: \65279表面看着该文件确实没错,看不出来问题,后来从SVN上更新下代码以后,发现本地也不报错,后来通过Eclipse查看了该xxx.java类原创 2011-11-16 14:42:46 · 18656 阅读 · 1 评论 -
ImageIO.read()方法读取图片后重写,图片蒙上一层红色的解决办法(上)
1.在项目中为了处理用户上传的图片,会对图片进行重写处理,故使用了类似下面的代码: File src = new File("e:/img/google.jpg"); BufferedImage bi = (BufferedImage)ImageIO.read(src); BufferedImage bi_scale = new BufferedImage(bi.getWidth原创 2011-10-23 12:18:23 · 27544 阅读 · 2 评论 -
ImageIO.read()方法读取图片后重写,图片蒙上一层红色的解决办法(下)
在经过一系列探索,《ImageIO.read()方法读取图片后重写,图片蒙上一层红色的解决办法(上)》篇已经通过Jimi初步解决,但在Linux平台下必须开图形界面才行,但现实情况,服务器一般运行在init 3级别下,init 5不太现实,另外Jimi对象图片的处理也较差,部分图片重写后质量降低,模糊等,由此也证明了Java语言在处理图片上的劣势,这是非常让人纠心的事,最终只能借助于无敌的Imag原创 2011-11-05 14:39:31 · 4294 阅读 · 0 评论 -
linux下ImageMagick,Jmagick安装说明(linux64)
1. 在安装ImageMagick之前,请检查下面包已经安装tiff-3.9.5.tar.gz (rpm -qa|grep libtiff检查是否已经安装)libpng-1.2.46.tar.gz (rpm -qa|grep libpng检查是否已经安装)jpegsrc.v6b.tar.gz (rpm -qa|grep libjpeg检查原创 2011-11-05 14:01:23 · 7210 阅读 · 0 评论 -
Jetty提交数据时报java.lang.IllegalStateException: Form too large270468>200000问题解决
今天在使用Eclipse的Jetty插件做为服务器提交富文本编辑中的数据时,报如下异常:java.lang.IllegalStateException: Form too large270468>200000 at org.mortbay.jetty.Request.extractParameters(Request.java:1561) at org.mortbay.jetty.Re原创 2011-11-21 13:57:18 · 24659 阅读 · 11 评论 -
Native Library /usr/lib/libJMagick.so already loaded in another classloader
最近安装了ImageMagick的应用服务器报如下异常:java.lang.UnsatisfiedLinkError: Native Library /usr/lib/libJMagick.so already loaded in another classloader java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1772)原创 2011-11-29 09:25:08 · 5658 阅读 · 0 评论 -
iBatis操作CLOB类型字段时报setString can only process strings of less than 32766 chararacters
最近生产环境上因数据库某一字段类型由VARCHAR2(4000)改为CLOB后,报如下异常:Caused by: java.sql.SQLException: setString can only process strings of less than 32766 chararacters at oracle.jdbc.driver.DatabaseError.throwSqlExce原创 2011-12-14 16:38:12 · 2803 阅读 · 0 评论 -
JAVA线程池ThreadPoolExecutor与阻塞队列BlockingQueue
从Java5开始,Java提供了自己的线程池。每次只执行指定数量的线程,java.util.concurrent.ThreadPoolExecutor 就是这样的线程池。以下是我的学习过程。首先是构造函数签名如下:public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeU原创 2011-12-28 17:48:18 · 48740 阅读 · 15 评论 -
将JS代码隐藏在图片中的方法
之前写过利用图片重写的方法清除图片中恶意代码的文章,java清除恶意代码 ,但这些图片中的恶意代码是怎么植入进去的呢,有简便方法,也有复杂方法。先来看如下这张图片,是Google的LOGO,是一张完全正常的png图片:用UltraEdit打开,一切正常,看不到其它JS代码,如下:下面是一段我们用来测试的JavaScript代码: function writer原创 2011-12-15 09:53:44 · 14462 阅读 · 7 评论 -
Java正则达式引起死循环问题解决办法
最近线上应用一直LOAD值非常高,几乎接近宕机的边缘,开始报异常如下:at java.util.regex.Pattern$GroupTail.match(Unknown Source)at java.util.regex.Pattern$Ctype.match(Unknown Source)at java.util.regex.Pattern$Branch.match(Unknown Source)at java.util.regex.Pattern$GroupHead.match(Unkno原创 2010-11-09 14:56:00 · 14191 阅读 · 3 评论 -
Java1.5泛型指南中文版(Java1.5 Generic Tutorial)
<br /><br />Java1.5泛型指南中文版(Java1.5 Generic Tutorial)<br />英文版pdf下载链接:http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf<br /> 译者: chengchengji@163.com<br /> <br />目 录<br /> <br />摘要和关键字<br />1.转载 2010-12-30 16:58:00 · 953 阅读 · 0 评论 -
Java清除图片中的恶意信息(利用jmagick)
接上篇,Java判断文件类型,继续图片安全问题。若已正确判断出图片类型,防止了绝大多数恶意图片上传。但是若通过修改文件流的方法,给一张本身合法的图片中强行写入一些恶意代码,或者病毒代码,这样前面的方法仍然能够顺利通过,因为它本身是张正确格式的图片,仅仅读取字节与获取图片类型无法做到清除这种类型图片中隐藏的恶意代码。 试想,如这种类型图片上传到服务器,当引用了该图片的网页被访问时,而恰好用户的机子装了杀毒软件,则此时杀毒软件会对该页面报警,如果您的网页中存在大量的这种图片,那惨啦,一打开网页,杀毒软件就原创 2010-07-08 13:45:00 · 6519 阅读 · 0 评论 -
Java开源图像处理框架Marvin介绍
Java对图像的处理框架比较少,目前比较流行的有Jmagick以及Marvin,但Jmagick只能处理图像(上篇Java清除图片中的恶意信息(利用Jmagick)中对Jmagick已做过简略介绍),而Marvin不但可以处理图像,而且可以集成各种插件,操作视频,摄像头来达到各种效果。Marvin 是一个Java开发的可扩展的图像处理框架,该框架主要提供以下几方面的功能:基本图像操作;从视频中捕获帧;多线程的图像处理;通过GUI界面集成插件;插件性能分析;通过插件进行功能扩展。授权协议: GPL开发语言:原创 2010-07-09 10:45:00 · 9183 阅读 · 0 评论 -
Java 图片格式转换(包括bmp-->jpg)
java在做图片类型转换时,JDK本身提供的类对 GIF->JPG GIF->PNG PNG->GIF(X) PNG->JPG 这几种类型的转换支持比较好,可以通过类直接转,代码如下:/** * Created on 2010-7-13 * Discription:[convert GIF->JPG GIF->PNG PNG->GIF(X) PNG->JPG ] * @param source * @param formatName * @p原创 2010-07-13 10:29:00 · 20018 阅读 · 2 评论 -
FireFox下Ajax同步请求onReadyStateChange不执行问题解决
在FireFox下,使用Ajax提交请求,而该请求是同步时,IE浏览器下正常使用的代码在FireFox下却不执行,主要是不执行onReadyStateChange这个方法体里面的代码,代码如下:var xmlhttp = loadXMLDoc();var startRequestMethod = function(obj){ var url = "http://www.xxxx.com?id=1"; xmlhttp.open("get", url, false); //这是个同步请原创 2010-07-27 23:04:00 · 7257 阅读 · 0 评论 -
Java集合HashSet的hashcode方法引起的内存泄漏问题
package apistudy;import java.util.HashSet;import java.util.Set;/** * Created on 2010-6-7 * Description: [HashSet的hashcode方法引起的内存泄漏] * @author shixing_11@sina.com * @version 1.0*/public class HashSetTest{ public stati原创 2010-06-07 14:19:00 · 3888 阅读 · 1 评论 -
面试题: 求 1*1! + 2*2! + 3*3! +...+ N*N! = ?
曾经做过的一道面试题:求 1*1! + 2*2! + 3*3! +...+ N*N! = ?分析:这道题目有两个隐藏问题1. N!非常大,不能用普通的int或long来存储,许多人在这点上就挂了。2. 对递归和非递归算法的转化与性能比较。根据以上两点分别做如下对策:1. N!非常大,但是Java中提供了专门用于处理大数据类型的类,BigInteger和BigDecimal,这两个类被经常用 于金融计算,完全将数据处理对象化。数据的计算调用对象的方法完成,拿BigDecimal举例如下:BigDecim原创 2010-06-07 14:41:00 · 3869 阅读 · 1 评论 -
Java读写Properties文件
package apistudy;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.util.Properties;pu原创 2010-06-07 10:29:00 · 39977 阅读 · 4 评论 -
Java读取资源文件时内容过长与换行的处理
<br />Java读取Properties文件时碰到两问题<br />1. 资源文件中的key对应的value过长时,书写不方便,需要换行,若直接回车则回车后的内容被忽略<br />2.资源文件中的key对应的value需要换行显示时,若直接回车,则同样丢掉回车后的部分<br />针对上述问题找到如下解决办法:<br />1. 内容过长需要换行时拼接个/斜杠,这样/后的内容后正常显示<br />2.若内容本身需要换行时则用/n代替回车<br /> <br />package apistudy;im原创 2010-06-07 11:28:00 · 4640 阅读 · 0 评论 -
Java比较器对数组,集合排序一
数组排序非常简单,有前辈们的各种排序算法,再加上Java中强大的数组辅助类Arrays与集合辅助类Collections,使得排序变得非常简单,如果说结合比较器Comparator接口和Collator类及其子类RuleBasedCollator,能将排序发挥到极致。1.默认规则的排序 String[] array = {"动作","剧情","情感","惊悚","动画","纪录"}; List list = new ArrayList(); //该List中放有和array数组同样的数据 Array原创 2010-06-07 11:32:00 · 3305 阅读 · 0 评论 -
Java比较器对数组,集合排序二
<br /><br /> 需求:在实际项目中,我们常常需要对一些对象根据一定规则排序,如果人员对象要根据人名拼音排序,更进一步,有些政府公关项目需要将领导人的姓名排在第一位.做过权限部分的朋友们应该都了解此需求,那么就需要我们对中文排序,而往往我们的人员或者角色对象都放在一个List中,那么如何进行指定规则的排序呢,如有,张三,李四,领导,我需要结果,我-->领导-->李四-->张三请看代码,顺便了解下Java中强大的比较器。<br />1.有一个Person类(Person.java),有三个属性,代码如原创 2010-06-07 11:35:00 · 1981 阅读 · 0 评论 -
Tomcat配置远程调试
相信做过Java Web项目的朋友都非常熟悉MyEclipse(汗,有不知道的?),集成Tomcat一点deploy按钮,直接发布成功,再一个start就可以欣赏自己的大做了。可有些项目或者公司不允许使用MyEclipse(收费的,呵呵),所以部署打包的事完全交给了Ant或者Maven来做,但这两兄弟都得在命令行下来做,对于被MyEclipse惯坏的我来说,用着简直是痛苦之极,就拿Ant来说,往往要做如下几步: 1.进入工程目录,运行Ant命令编译;2.生成Eclipse工程所需的文件(.classpath原创 2010-06-07 11:42:00 · 9023 阅读 · 0 评论 -
关于 URL 的一些不可不知的知识
URL 设计是 Web 设计中常被忽视的东西,事实上 URL 非常重要,这不仅是一个网页唯一的路径,还涉及到你的站点是否干净,友好。本文讲述 URL 这个司空见惯的 Web 元素中包含的大量不应为忽视的知识,准则与最佳实践。需要注意的是 W3C 建议使用 URI 取代 URL 一说 。关于 URL 的一些准则首先是与 URL 有关的一些准则。一个 URL 必须唯一地,永久地代表一个在线对象URL 的最基本的使命是唯一地代表 Internet 上的一个对象,URL 必须和 Internet 上的对象一对一匹配转载 2010-08-11 16:54:00 · 845 阅读 · 0 评论 -
FireFox下载文件时文件名乱码的解决办法
WEB开发时,上传下载功能太常见了,而困扰开发人员的字符集,以及编码问题一起比较纠结,小弟最近也碰到下载时乱码的问题,乱码的情况,IE下点下载超链接时能够正常为显示(我是比较喜欢IE的),而在FireFox下则会出现乱码。搜集了网上的资料,解决办法如下:请看代码:String agent = (String)rundata.getRequest().getHeader("USER-AGENT"); if(agent != null && agent.indexOf("M原创 2010-09-02 15:27:00 · 20262 阅读 · 6 评论 -
分布式环境中三种Session管理方法的使用场景及优缺点
在分布式环境,管理Session通常使用下面三种方式:一、Session Replication 方式管理 (即session复制) 简介:将一台机器上的Session数据广播复制到集群中其余机器上 使用场景:机器较少,网络流量较小 优点:实现简单、配置较少、当网络中有机器Down掉时不影响用户访问 缺点:广播式复原创 2012-02-08 23:57:56 · 10472 阅读 · 0 评论
分享