package com.check;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ImageServlet")
public class ImageServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public ImageServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//生成验证码,生成bufferdimage
BufferedImage bi = new BufferedImage(68, 32, BufferedImage.TYPE_INT_RGB);//定义图片的高度和宽度
Graphics graphics=bi.getGraphics(); //画一个图片
Color color=new Color(200, 150, 255);
graphics.setColor(color);
graphics.fillRect(0, 0, 68, 32);
List list=new ArrayList();
char[] num="1234567890".toCharArray();
char[] strUpper="ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
char[] strLower="abcdefghijklmnopqrstuvwxyz".toCharArray();
for (int i = 0; i < num.length; i++) {
list.add(num[i]);
}
for (int i = 0; i < strUpper.length; i++) {
list.add(strUpper[i]);
}
for (int i = 0; i < strLower.length; i++) {
list.add(strLower[i]);
}
Object[] ch=list.toArray();
//char[] ch="1234567890".toCharArray(); //生成随机数
int len=ch.length,index;
Random random=new Random();
StringBuffer sb=new StringBuffer();
for (int i = 0; i < 4; i++) {
index=random.nextInt(len); //生成随即的字符,从char数组中获取,指定数组的长度
graphics.setColor(
new Color(
random.nextInt(88),
random.nextInt(188),
random.nextInt(255)));
graphics.setFont(new Font("italic", Font.ITALIC, 20));
graphics.drawString(ch[index]+"", (i*15)+3, 18);
sb.append(ch[index]);
}
request.getSession().setAttribute("piccode", sb.toString()); //将sb对象转为string类型进行验证
ImageIO.write(bi, "JPG", response.getOutputStream());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
servlet+jsp实现验证码demo
共16个文件
class:2个
xml:2个
java:2个
需积分: 16 10 下载量 9 浏览量
2015-12-27
22:16:07
上传
评论
收藏 12KB ZIP 举报
温馨提示
servlet+jsp实现验证码 具体步骤: 生成图片所要实现的类 1、定义BufferedImage对象 2、获得Graphics对象 3、使用Random生成随机验证码信息 4、使用Graphics绘制图片 5、记录验证信息到session 6、使用ImageIO生成图片
资源推荐
资源详情
资源评论
收起资源包目录
checkcode.zip (16个子文件)
checkcode
.project 1006B
WebContent
WEB-INF
lib
web.xml 923B
index.jsp 930B
js
check.js 149B
META-INF
MANIFEST.MF 39B
src
com
check
LoginServlet.java 1KB
ImageServlet.java 2KB
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.common.project.facet.core.xml 335B
org.eclipse.jdt.core.prefs 357B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.component 471B
.jsdtscope 491B
build
classes
com
check
LoginServlet.class 2KB
ImageServlet.class 3KB
.classpath 828B
共 16 条
- 1
资源评论
guonei001
- 粉丝: 19
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功