
Java
文章平均质量分 51
sui102
这个作者很懒,什么都没留下…
展开
-
获取运行时调用堆栈信息
在JDK1.4中,可以这样写:StackTraceElement[] stackTraceElements = new Throwable().getStackTrace(); 然后就可以获取到类名、方法名、行数、文件名等信息:stackTraceElements.getClassName() stackTraceElements.getFileName() stackTr...2009-03-25 16:50:35 · 206 阅读 · 0 评论 -
yyyy-MM-dd格式的Java日期校验代码
用正则表达式匹配,从1970-01-01开始往后2万天逐一测试日期有效性,包括闰年2月29日,都可以校验通过。import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.rege...原创 2012-03-01 09:49:19 · 999 阅读 · 0 评论 -
XML命名空间与验证小结
命名空间主要是用来避免元素命名冲突,详细解释可以参考《XML命名空间》。验证的目的是确保XML文档按照设计者规定的格式编写,减少解析时出错的可能性。例如规定某元素必须具有哪些属性等等。详细描述可以参考《XML Schema 简介》 下面看一个例子。 <?xml version="1.0" encoding="UTF-8" ?><beans xmlns="...原创 2013-04-07 15:00:56 · 329 阅读 · 0 评论 -
LDAP身份验证示例
public class LDAPAuthentication { private final String URL = "ldap://ldapserver:389/"; private final String BASEDN = "ou=people,o=xxx.com.cn"; private final String FACTORY = "com.sun.jndi.lda...2012-07-26 10:46:13 · 317 阅读 · 0 评论 -
用SAX(JDK自带API)解析XML文件
解析的工具类继承org.xml.sax.helpers.DefaultHandler,然后覆盖父类的几个方法即可。方法的详细解释可以参照JDK的API文档。startDocument() 开始解析XML时被调用,一般可以用来做初始化操作。startElement() 解析到某个元素(标签)的开头时(例如<name>)被调用,一般用来判断是否已开始解析某特定元素(标签)。...原创 2013-04-15 17:11:22 · 491 阅读 · 0 评论 -
Java命令行指定lib目录
java -Djava.ext.dirs=xxx原创 2012-11-08 10:43:39 · 5235 阅读 · 1 评论 -
构造人性化的运行耗时字符串
工具类 /** * 构造人性化的运行耗时字符串。<br/> * 最大时间单位为“天”,最小时间单位为“毫秒”。 * * @param startAt * 开始时间点 * @return 从startAt至今所消耗的时间,格式为“x天x小时x分钟x秒x毫秒” */ public static String ge...原创 2013-05-03 09:34:32 · 93 阅读 · 0 评论 -
读取控制台输入
以下代码适用于JDK1.5以上 private static String readLineFromConsole(String prompt) { System.out.println(prompt); if (System.console() != null) return System.console().readLine(); else { r...原创 2013-01-06 10:13:35 · 165 阅读 · 0 评论 -
常用正则表达式
解析IP地址 ((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))原创 2013-01-06 10:16:41 · 78 阅读 · 0 评论 -
jetty-distribution-9.0.0.M0
jetty-distribution-9.0.0.M0原创 2013-01-08 23:16:51 · 178 阅读 · 0 评论 -
Quartz表达式
通配符说明“*”字符代表所有可能的值“/”字符用来指定数值的增量,例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟。“,”字符用来隔开多个取值“?”字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值,当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?”“L” 字符仅被用于天(月)和天(星期)两个子表达式,它...原创 2013-12-02 17:37:08 · 170 阅读 · 0 评论 -
使用jxl读写Excel文件
代码:import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jx...原创 2013-12-04 15:54:43 · 141 阅读 · 0 评论 -
使用apache poi读写excel文件
apache poi软件包可以用来操作office文档,并且可以支持2007以上版本的文档,例如excel的.xslx文件。下面是一个生成excel文件的例子,演示了常用的格式设置。import java.awt.Color;import java.io.FileOutputStream;import java.text.SimpleDateFormat;import or...2014-06-06 10:26:55 · 136 阅读 · 0 评论 -
Junit4中测试抛异常
虽然很简单,但是久了不用很容易忘记……其实就是在@Test后面加上expected=异常的class对象,例如:@Test(expected=IllegalArgumentException.class)public void testMethod() { ......} ...2014-07-14 15:43:18 · 309 阅读 · 0 评论 -
对私有方法进行单元测试
为了提升代码质量,减少缺陷,方便以后修改代码,除了对类中public方法编写单元测试案例以外,最好对私有方法也编写测试案例。方法也简单,利用java的反射,获得私有方法的Method对象,然后直接调用即可。获得私有方法的Method对象的方法如下:/** * 测试私有方法时使用,将类的私有方法转换成可访问的方法。 * @param clazz 类的类型,不能为空 * ...原创 2014-03-05 16:40:30 · 1493 阅读 · 0 评论 -
enum简单示例
最简单的情况,只有name,适合程序内部使用,不需要在界面上显示的情况,例如:public enum CategoryTypeEnum { cost,income;}引用方式:CategoryTypeEnum.cost 如果需要显示文字,可以这样定义:public enum AccountTypeEnum { cash("现金账户"), debitCard("...原创 2013-09-18 09:30:01 · 112 阅读 · 0 评论 -
Log4j日志格式化pattern参数
格式名 含义 %c 输出日志信息所属的类的全名 %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28 %f 输出日志信息所属的类的类名 %F:输出日志消息产生时所在的文件名称。%l:输出日志事件的发生位置,相当于%c.%M(%F:%L)的组合,...原创 2014-03-24 14:39:59 · 1121 阅读 · 0 评论 -
Log4j2配置入门
首先是Log4j升级到2.0版本以后,只支持XML格式的配置文件。实际应用中需要引入的jar包有log4j-api-2.0-rc1.jar、log4j-core-2.0-rc1.jar和commons-loggin.jar这三个。在classpath中添加一个log4j2.xml文件,内容类似这样:<?xml version="1.0" encoding="UTF-8"?>...原创 2014-04-14 14:29:22 · 171 阅读 · 0 评论 -
Java应用服务器控制台乱码及时区设置
tomcat、JBoss等java应用服务器缺省情况下时区设置是GTM+0,启动以后控制台显示的时间比我们本机通常晚了8小时。因此需要找到对应的启动文件,修改其中的JAVA_OPTS参数,添加-Duser.timezone=GMT+08参数。而乱码的问题,则是添加-Dfile.encoding=GBK参数。...原创 2012-02-28 11:07:11 · 209 阅读 · 0 评论 -
HttpClient简单示例
代码中用到的是httpclient4.3.1和httpcore4.3.1,可以在search.maven.org上找到相应的jar和API。先登录,然后访问指定URL,打印出服务器反馈的HTML源码。实际应用中可以使用jsoup解析获得的HTML源码。jsoup参考资料:jsoup Cookbook(中文版) 简单的访问一个URL,获取响应文本。访问之前先登录。publi...原创 2012-10-18 13:36:38 · 143 阅读 · 0 评论 -
使用dom4j解析XML简单示例
从字符串解析XMLpublic class Dom4jSample { static final String xmlString = "<persons><person age=\"32\"><name>张三</name></person>" + "<person age=\&quo原创 2012-10-18 10:51:57 · 80 阅读 · 0 评论 -
在Java中执行命令行程序
String commandLine = "explorer.exe C:\\";Runtime runTime = Runtime.getRuntime();Process process = runTime.exec(commandLine);int code = process.waitFor();第1行表示要打开资源管理器,并定位到C盘根目录。第4行,process.w...2009-04-06 14:37:48 · 122 阅读 · 0 评论 -
使用Jar打包的简单做法
先将要打包的文件整理好,拷贝到一个目录中。然后打开命令行窗口,进入到这个目录下面,执行以下命令即可:jar cvf SanyDemo.war */.这里指定文件名为SanyDemo.war,“*/.”表示要打包的文件为当前目录下的所有文件。以下为Jar自带帮助信息:用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-p...2009-04-06 14:44:42 · 155 阅读 · 0 评论 -
Java时区问题的简单解决方法
【问题描述】在Tomcat、Jetty等应用服务器上,经常会碰到控制台或者日志文件中,时间输出跟本机时间相差8小时的问题(中国是东8时区),其实是因为JVM中没有正确设置当地的时区,导致其使用缺省的0时区。这样new Date()出来的时间就跟本地差了8小时。 【解决方案一】(修改JVM启动参数)在Tomcat或Jetty的命令启动行加上一个JVM参数:-Duser.timez...原创 2011-01-19 10:25:55 · 316 阅读 · 0 评论 -
HttpServletRequest的getRequestURL()和getRequestURI()方法
经常用到但每次都不记得应该使用哪个方法,今天特地抽时间写下来,方便以后查阅。 访问URL:http://localhost:7001/GetDataWeb/a/b/c.datagetRequestURL()=http://localhost:7001/GetDataWeb/a/b/c.datagetRequestURI()=/GetDataWeb/a/b/c.data看来L...2011-01-21 10:41:45 · 222 阅读 · 0 评论 -
生成随机字符串
org.apache.commons.lang.RandomStringUtils.random(20, "abcdefghijklmnopqrstuvwxyz1234567890"); 20是字符串长度,后面一个字符串参数,是随机字符串中可能出现的字符组成。下面是一个批量生成文件的范例,文件内容为随机字符串,文件名和大小通过数组指定。import java.io.File...原创 2011-01-22 19:12:37 · 209 阅读 · 0 评论 -
URLConnection笔记
建立URLConnection URL url = new URL(“http://localhost:8080/wappush/ServletTest”);URLConnection uc = url.openConnection();要读写连接,必须做相应设置:uc.setDoInput(true);uc.setDoOutput(true);这两条语句的顺序可以随意。...2011-01-22 19:52:30 · 131 阅读 · 0 评论 -
Java加密和数字签名
消息摘要这是一种与消息认证码结合使用以确保消息完整性的技术。主要使用单向散列函数算法,可用于检验消息的完整性,和通过散列密码直接以文本形式保存等,目前广泛使用的算法有MD4、MD5、SHA-1,jdk1.5对上面都提供了支持,在java中进行消息摘要很简单, java.security.MessageDigest提供了一个简易的操作方法:import java.security.Mes...原创 2011-01-22 20:04:05 · 136 阅读 · 0 评论 -
加密算法介绍
加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密)。加密技术的要点是加密算法,加密算法可以分为对称加密、不对称加密和不可逆加密三类算法。 对称加密算法 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密...原创 2011-01-22 20:14:30 · 291 阅读 · 0 评论 -
使用Jetty加快调试速度
为什么要用Jetty?我们在开发过程中,经常遇到修改一个java类,哪怕只修改了一行代码,也要重启Tomcat才能看到修改结果的情况。这样也许修改代码只花了5秒钟,要看到结果却需要等50秒钟。有没有一种方法可以不用重应用启服务器,直接可以看到修改结果,就像修改Jsp一样呢?答案是有——那就是使用Jetty。之前也有同事写过使用Jetty的案例,不过那是以插件的方式去用,我个人比较偏好“...2011-01-22 20:40:26 · 232 阅读 · 0 评论 -
WebLogic在线文档中心
WebLogic 8.1 在线文档中心WebLogic 9.0 文档下载中心WebLogic 9.2 文档下载中心WebLogic 10.3.3文档中心WebLogic 10.3.4文档中心2011-01-31 17:07:16 · 122 阅读 · 0 评论 -
JAAS学习笔记
JAAS学习笔记WebLogic学习笔记原创 2011-02-01 17:02:53 · 110 阅读 · 0 评论 -
定制自己的WebLogic LDAP Authentication Provider
从WebLogic Server 7.0开始,WebLogic Server的安全机制有了全面的改变,实现了一个更加规范的基于JAAS的Security Framework,以及提供了一系列设计良好的Security Service Provider Interface。这样我们可以根据自己的具体需求,通过Custom Security Authentication Provider来实现安全...原创 2011-02-09 22:46:21 · 542 阅读 · 0 评论 -
JAAS基础认证和授权机制(转载)
安全性是所有可以用来对资源进行保护和验证的机制。有很多种安全模型都可以用来对数据提供保护。这些安全模型可以使用加密、访问控制或其他安全方法。授权(Authorization),或称为访问控制,可以使用不同的安全服务来对资源进行保护:一种方法是Java认证和授权服务(Java Authentication and Authorization Service,JAAS),另外一种方法是Windows ...原创 2011-02-09 22:54:33 · 516 阅读 · 0 评论 -
JAAS样例
经过几天研究,终于跑起来了第一个JAAS例子。把代码贴上来,免得以后忘了。 MyCallbackHandler.java(处理用户输入)package com.pingan.jaas.tutorial;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream...2011-02-14 10:10:21 · 330 阅读 · 0 评论 -
自定义WebLogic Role Mapper Provider样例
【概述】开发环境:WebLogic Server 8.1本文仅记录了主要的操作流程,涉及到的一些概念性的东西,就不详细叙述。需要了解的话,可以参考其在线文档中心 【Role Mapper Provider简介】在请求者与Weblogic 资源之间建立动态关联(比如将用户所属的用户组与某个role进行映射)。当一个Weblogic资源被访问时,WebLogic Security ...2011-02-17 16:17:22 · 233 阅读 · 0 评论 -
JDK自带的日志包简单应用
【适用场景】JDK自带的日志包,感觉功能没有Log4j强,也没log4j好用,可能是先入为主吧。但在个人开发测试的时候,毕竟是JDK自带的东西,不需要引入jar包,也不需要写配置文件,因此做一些简单、临时的日志输出,还是挺管用的。 稍微研究了一下,简单封装了几个类,日后自己用的时候,直接Copy就好了,免得重复研究浪费精力。 格式化类MySimpleFormatter:im...原创 2011-03-02 17:58:14 · 155 阅读 · 0 评论 -
Java class 版本号对应JDK版本
major minor Java platform version 45 (0x2D) 3 1.0 45 (0x2D) 3 1.1 46 (0x2E) 0 1.2 47 (0x2F) 0 1.3 48 (0x30) 0 1.4 49 (0x31) 0 1.5 50 (0x32...原创 2011-12-14 15:04:11 · 972 阅读 · 0 评论 -
Java处理Json的简单方式
先按Json字符串的格式定义好各级POJO对象,然后就可以简单的使用com.fasterxml.jackson.databind.ObjectMapper来进行Java 对象与Json字符串之间的互相转换。 先初始化import com.fasterxml.jackson.databind.ObjectMapper;ObjectMapper objectMapper = new ...2017-01-04 10:56:21 · 211 阅读 · 0 评论