java生成验证码详解
2010-11-12 16:12
447 查看
// /获得验证码-
public ActionForward getCheck(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
response.setContentType("image/jpeg");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
java.awt.image.BufferedImage bi = new java.awt.image.BufferedImage(32,
18, java.awt.image.BufferedImage.TYPE_INT_BGR);
java.awt.Graphics gs = bi.getGraphics();
gs.setColor(new java.awt.Color(0, 128, 64));
gs.fillRect(0, 0, 32, 18);
java.util.Random r = new java.util.Random(new java.util.Date()
.getTime());
char[] num = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
String imgcode = "" + num[r.nextInt(36)] + num[r.nextInt(36)]
+ num[r.nextInt(36)] + num[r.nextInt(36)];
request.getSession().setAttribute("imageCode", imgcode);
gs.setFont(new java.awt.Font("Arial", 1, 11));
gs.setColor(new java.awt.Color(255, 255, 255));
gs.drawString(imgcode, 2, 15);
java.io.OutputStream o = null;
try {
o = response.getOutputStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
com.sun.image.codec.jpeg.JPEGImageEncoder en = com.sun.image.codec.jpeg.JPEGCodec
.createJPEGEncoder(o);
try {
en.encode(bi);
} catch (ImageFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public ActionForward getCheck(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
response.setContentType("image/jpeg");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
java.awt.image.BufferedImage bi = new java.awt.image.BufferedImage(32,
18, java.awt.image.BufferedImage.TYPE_INT_BGR);
java.awt.Graphics gs = bi.getGraphics();
gs.setColor(new java.awt.Color(0, 128, 64));
gs.fillRect(0, 0, 32, 18);
java.util.Random r = new java.util.Random(new java.util.Date()
.getTime());
char[] num = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
String imgcode = "" + num[r.nextInt(36)] + num[r.nextInt(36)]
+ num[r.nextInt(36)] + num[r.nextInt(36)];
request.getSession().setAttribute("imageCode", imgcode);
gs.setFont(new java.awt.Font("Arial", 1, 11));
gs.setColor(new java.awt.Color(255, 255, 255));
gs.drawString(imgcode, 2, 15);
java.io.OutputStream o = null;
try {
o = response.getOutputStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
com.sun.image.codec.jpeg.JPEGImageEncoder en = com.sun.image.codec.jpeg.JPEGCodec
.createJPEGEncoder(o);
try {
en.encode(bi);
} catch (ImageFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
相关文章推荐
- java图片验证码生成教程详解
- java仿Servlet生成验证码实例详解
- java开发_使用BufferedImage生成验证码
- 【Android】java生成炫酷验证码,不区分大小写。登陆,发送手机验证码,防止注册机,android开发
- 【超级详细】使用java生成带干扰线颜色不一的验证码
- java简单验证码生成与保存
- Java生成验证码
- java生成验证码
- 菜鸟学Java(六)——简单验证码生成(Java版)
- 详解Java使用sqlite 数据库如何生成db文件
- 在java中生成验证码的问题
- Java编译时生成调试信息选项详解(javac -g)
- 验证码生成(四位图形验证码java)
- Java生成验证码并进行验证(转)
- JavaWeb开发之普通图片验证码生成技术与算术表达式验证码生成技术
- 通过response生成验证码 java验证码
- java验证码生成与校验
- JAVA生成验证码
- Java进阶之Hibernate主键生成策略详解
- java生成验证码