Java 生成验证码
java生成验证码
有很多种方式,在网上也有很多代码,但是那些生成的效果,感觉都不是特别好,所以我在他们的基础上改良了一些。
但能还可以用jmagick ,生成很多很炫的验证码。过两天研究下。先把最近改的这个发布下供朋友们参。
可以先看看样例。最近在做这个网站。大家有兴趣可以叫交流。约会360 网址: www.yuehui360.com
验证码效果可以在
约会360注册页面 http://www.yuehui360.com/register.htm 查看效果
图片效果:
代码如下:
package com.idate.util;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
/**
* @author lqinglong@yahoo.cn
* 约会360 www.yuehui360.com
*/
public class CodeHelper {
private static final CodeHelper generator = new CodeHelper();
private final String ATTRIBUTE_NAME = "code";
//图片的宽度
private final int WIDTH = 35;
//图片的高度
private final int HEIGHT = 55;
//字符串长度
private final int CODE_LENGTH = 4;
//随机字符串范围
private final String RAND_RANGE = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" ;
private final char[] CHARS = RAND_RANGE.toCharArray();
private Random random = new Random();
private CodeHelper(){
//
}
public static CodeHelper getInstance(){
return generator;
}
/**
* 生成随机字符串
* @return 随机字符串
*/
private String getRandString(){
StringBuilder sb = new StringBuilder();
for (int i = 0; i < CODE_LENGTH; i++)
sb.append(CHARS[random.nextInt(CHARS.length)]);
return sb.toString();
}
相关文档:
java去除字符串中的空格、回车、换行符、制表符
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringUtil {
public static void replaceBlank()
{
Pattern p = Pattern.compile("\\s*|\t|\r|\n");
String str="I am a, I am Hello ok, \n new line ffdsa!";
System.out.p ......
可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。
在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成好的代码编写习惯 ......
在java编程思想中对synchronized的一点解释:
1、synchronized关键字的作用域有二种:
1)是某个对象实例内,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个 ......
Java连接mysql数据库,代码经过运行准确无误。
下面为实例---->
用数据库操纵工具(例:SQLyogEnt)操纵mysql建表,或dos下建,如下:
数据库名:scutcs
表名:student
表内容:
sno char[7] NO NULL Primary Key;
sname varchar[8] NO NULL;
sex char[2] NO NULL; ......