`

验证码定时自动刷新

阅读更多
文件如下: 其中image.jsp用来产生验证码,请参考下面代码。

一、code.jsp
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="gb2312" >
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<meta name="robots" content="all" />
<title>Dolphin Document</title>

</head>
<body>
<img id="acimg" src="image.jsp" />
<script language="javascript" type="text/javascript">
setInterval('document.getElementById("acimg").src=document.getElementById("acimg").src',1000);
</script>
</body>
</html>

二、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(fc>255) fc=255;
if(bc>255) 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;i<155;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 rand = request.getParameter("rand");
//rand = rand.substring(0,rand.indexOf("."));
String sRand="";
for (int i=0;i<4;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());

%>

分享到:
评论

相关推荐

    Windows版验证码生成程序

    也可以将鼠标移至验证码处进行过滤(即去除干扰物)放大处理或是直接点击放大按钮进行放大,当然为了更加安全,无论验证结果如何,验证码都会自动更换,还有,本程序使用了定时器定时自动刷新验证码。 主要涉及到窗体...

    12306免验证码抢票助手

    自动打码、自动识别滑块验证码(限时体验) 首页公告提示,避免忽略最新政策信息 支持多重过滤条件 支持过滤车型、席别 支持添加多条路线、添加多个日期 支持选择多乘客、在线选座、 支持选择静音车厢功能 ...

    XP订票助手 v2.0.23.0.zip

    XP订票助手是一款一个基于中国铁路客户服务中心网站的火车票预订的火车票订票助手,基于中国铁道部官网网站12306的火车票预订软件,包括定时抢票、自动刷新等强大功能,可以有效解决网上订票难的状况 XP订票助手...

    12306订票助手

    12306订票助手,自动刷新 各功能选项说明: 选项 解释 记住信息 勾选此选项的话,每次你查询后,助手会帮你把始发站、到达站、日期等进行记录,下次进入查询页面后,将会帮您自动填写好 自动重新查询 勾选此选项后...

    抢票好手(130107)永久免费

    3.定时刷新,车票查询,余票查询 4.乘客信息从12306网站读取 5.自动查询车次车票数并预订... 功能介绍: 1.输入你的12306注册用户名和密码,点击登录,系统自动识别验证码。 2.输入需要预定的出发和终点,日期,点...

    抢票好手(121012)10月12号更新

    3.定时刷新,车票查询,余票查询 4.乘客信息从12306网站读取 5.自动查询车次车票数并预订... 功能介绍: 1.输入你的12306注册用户名和密码,点击登录,系统自动识别验证码。 2.输入需要预定的出发和终点,日期,...

    12306免滑块验证抢票助手(MacOSX版)

    自动打码、自动识别滑块验证码(限时体验) 首页公告提示,避免忽略最新政策信息 支持多重过滤条件 支持过滤车型、席别 支持添加多条路线、添加多个日期 支持选择多乘客、在线选座、 支持选择静音车厢功能 ...

    12306免费抢票助手

    自动打码、自动识别滑块验证码(限时体验) 首页公告提示,避免忽略最新政策信息 支持多重过滤条件 支持过滤车型、席别 支持添加多条路线、添加多个日期 支持选择多乘客、在线选座、 支持选择静音车厢功能 ...

    我记录网站综合系统 1.6源码

    2)然后制作导入计划,都是自动导入(也可以即时手动刷新导入),还可以设置是否需要审核。 3)采集和导入都是自动定时循环执行,间隔时间请到后台计划任务处设置。 4)和门户集成,可以直接导入门户app中。 框架...

    JavaScript网页特效范例宝典源码

    实例105 随机产生指定位数的验证码 166 实例106 生成随机字符串 167 3.4 日期与时间 169 实例107 显示长日期格式的系统日期 169 实例108 实时显示系统时间 171 第4章 日期和时间 173 4.1 日期时间显示 174 实例109 ...

    C#开发经验技巧宝典

    0419 页面定时刷新后跳转到其他页 233 0420 打开新的窗口并传送参数 233 0421 动态显示用户头像 233 0422 利用Pannel控件显示和隐藏一组控件 233 0423 如何在GridView控件上添加删除确认 234 0424 如何为...

    网优宝企业网站管理系统(基于seo技术一站式优化)

    c) 验证码、防刷新机制、SQL过滤设置和防注入功能,让您的网站安全无忧 八、 一次授权,终身使用,强大的技术团队支持 a) 网优宝为机械专家网技术部开发,历时半年之久,反复测试-修改, b) 网优宝有强大的技术...

    《程序天下:JavaScript实例自学手册》光盘源码

    1.3 页面自动刷新 1.4 页面的后退、刷新、前进 1.5保护网页源代码 1.6 保护自己的网页不被放入框架 1.7 保护自己的网页不被放入框架 1.8 打印页面的出错原因 1.9 当前网页调用其他网页 1.10 倒计时载入页面 1.11 ...

    程序天下:JavaScript实例自学手册

    1.3 页面自动刷新 1.4 页面的后退、刷新、前进 1.5保护网页源代码 1.6 保护自己的网页不被放入框架 1.7 保护自己的网页不被放入框架 1.8 打印页面的出错原因 1.9 当前网页调用其他网页 1.10 倒计时载入页面 1.11 ...

    phpcms2008_gbk

    关于产品体验:支持编辑器自动定时保存数据,可随时恢复;支持信息发布前预览,效果与实际发布相同;支持完全可视化预览和修改碎片;支持编辑器多图片上传,并可以自由裁剪缩放;前后台第一次登录都不需要输入验证码...

    phpcms2008

    关于产品体验:支持编辑器自动定时保存数据,可随时恢复;支持信息发布前预览,效果与实际发布相同;支持完全可视化预览和修改碎片;支持编辑器多图片上传,并可以自由裁剪缩放;前后台第一次登录都不需要输入验证码...

    开源通用爬虫框架YayCrawler.zip

    作为对立面,我们自然也要有反监控的手段来保障我们的爬虫任务,目前主要考虑的因素有:cookie失效(需要登陆)、刷验证码、封IP(自动换代理)。7、可以对任务设置定时刷新,比如隔一天更新某个网站的数据。作者...

    javascript网页特效实例大全(8-12)

    实例225 定时隐藏图片 349 实例226 根据时间变换页面背景 350 实例227 使图片不停闪烁 352 实例228 上下跳动的图片 352 实例229 图片左右晃动 354 实例230 飘舞的变形图片 356 8.4 图片的动画效果 358...

Global site tag (gtag.js) - Google Analytics