- 12
- 0
- 约3.2千字
- 约 4页
- 2017-08-18 发布于湖北
- 举报
生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新(用history.go(-1)也会变)
原型参考ALIBABA /member/showimage
产生验证码图片的文件image.jsp
%@ page contentType=image/jpeg import=java.awt.*,java.awt.image.*,java.util.*,javax.imageio.* %
%!
Color getRandColor(int fc,int bc){//给定范围获得随机颜色
Random random = new Random();
if(fc255) fc=255;
if(bc255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
%
%
//设置页面不缓存
response.setHeader(Pragma,No-cache);
response.setHeader(Cache-Control,no-cache);
response.setDateHeader(Expires, 0);
// 在内存中创建图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = image.getGraphics();
//生成随机类
Random random = new Random();
// 设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);
//设定字体
g.setFont(new Font(Times New Roman,Font.PLAIN,18));
//画边框
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);
// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}
// 取随机产生的认证码(4位数字)
String sRand=;
for (int i=0;i4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 将认证码显示到图象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.drawString(rand,13*i+6,16);
}
// 将认证码存入SESSION
session.setAttribute(rand,sRand);
// 图象生效
g.dispose();
// 输出图象到页面
ImageIO.write(image, JPEG, response.getOutputStream());
%
使用验证码图片的文件a.jsp
%@ page contentType=text/html;charset=gb2312 %
!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN
html
head
title认证码输入页面/title
meta http-equiv=Content-Type content=text/html; charset=gb2312
META HTTP-EQUIV=Pragma CO
您可能关注的文档
- 基于支持中关村国家自主创新示范区.doc
- 关于实施材料科学及工程学院信息通报制度的通知.doc
- 四川化工职业技术学院幻灯片.doc
- 第12章:廊坊市文化广电新闻出版局双随机抽查事项清单.doc
- 复旦大学单位信息(用于上海市项目填报)要领.doc
- 十七届六中全会精神学习材料_附件.doc
- 上海市研究生教育学会概论.doc
- 儿歌教学在幼儿园艺术特色教学中实践研究.doc
- 把评建工作作为学院发展契机,遵循以评促建、以评促.doc
- 青田县2014年度干部职工普法考试题库.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 【花生十三】25公务员考试资料分析速算练习册及速算过程.pdf VIP
- mst2016说明书.pdf VIP
- 口腔科课件洁治.pptx
- 2025兴安盟公安局招聘165名留置看护警务辅助人员备考试题及答案解析.docx VIP
- 35KV变电站毕业设计(完整版).doc VIP
- AP微观经济学 2012年真题 (选择题+问答题) AP Microeconomics 2012 Released Exam and Answers (MCQ+FRQ).pdf VIP
- 上海师范大学天华学院公共课《大学计算机基础》期末试卷A(有答案).docx VIP
- 高中生对AI 技术应用的态度与认知调查问卷.docx VIP
- 2025年度”五个方面“专题组织生活会个人对照检查发言材料.docx VIP
- 南方医科大学各专业实习大纲汇编.pdf VIP
原创力文档

文档评论(0)