用jsp页面生成随机的验证数字码示例


checkNum.jsp

复制代码 代码如下:

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,javax.imageio.*"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<%!
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));//设置字体
for(int i=0;i<155;i++)
{
int x=random.nextInt(width);
int y=random.nextInt(height);
int x1 = random.nextInt(12);
int y1 = random.nextInt(12);
g.drawLine(x,y,x+x1,y+y1);
}
//随机产生验证码
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());
out.clear();
out = pageContext.pushBody();

%>

可以在登录login.jsp下直接通过: 这种格式调用;
验证码:<input class="imgbutton" name="checknum" type="text" size="15" id ="checknum" maxlength="4"/>
<img src="checknum.jsp" alt="Change" border="1" onclick="changeCheckNum()"/><br/>
<input type="submit" name="submit" value="login"/>



相关阅读:
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
详解Debian系统中安装Linux新内核的流程
iPad系统常用文件夹位置整理
简要分析Java多进程编程的并发控制
论JavaScript模块化编程
深入浅析JS的数组遍历方法(推荐)
ThinkPHP视图查询详解
HTML5 canvas基本绘图之绘制线段
VC基于ADO技术访问数据库的方法
Android编程之内存溢出解决方案(OOM)实例总结
Android图片处理实例介绍(图)
android预置默认的语音信箱号码具体实现
Java编程中字节流与字符流IO操作示例
VC创建DLL动态链接库的方法
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 心心向团团日活动策划书 从她的眼中,你可以找到方向 光阴就这样寸寸远去,徒增一些感伤与留恋。 2016大学生公司实习辞职报告 圣诞节来了作文500字 大学主持人大赛策划书 知识可以带给我们快乐知识也可以带给我们财富 青春,无处安置 新学期,新计划400字 优秀学生会演讲稿 流年岁月,谁苍白谁的等待 不知该如何走出这一步 讲学习比素质演讲稿 那迷人的落日 再回首,那些纯真的同学们 “两学一做”要以落实为“主线” 话务员4月个人工作总结 雨(其二) 给好朋友最诚挚生日祝福语 学会感恩手抄报资料 悲伤的思念 2013宣传委员工作计划 2015年七夕节祝福语 学校安全保卫工作实施方案_实施方案 最新学校父亲节活动总结 我是一个人,一直都是.... 奥拉星大战赛尔号作文350字 别了,我的最爱 招商证券等30家证券、基金公司发布联合倡议书 国家技能鉴定查询 遇雨 说不出的话尽在祝福中 军训!我们在成长!作文3000字 小学四年级作文350字:上错车 三秒钟的错过 梅花遐想 缘来远去、只是一抹痛忆。 舆论监督的作用不可小觑 当春四韵同□左丞诗 梁启超家书好句摘抄 写给远方的她 回忆往事的作文 浅唱,没有人懂的悲伤。 小学六年级作文600字:真正的错过 重阳节的手抄报 高中生重阳节作文:重阳节的传说 元旦趣事600字:元旦打保龄球 春的叙事 呼啸山庄赏析作文100字 致高考,我仍不知道那天下雨的意义

Copyright © 2016 phpStudy |