JSP如何实现彩色验证码
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家分享的是有关JSP如何实现彩色验证码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新(用h
千家信息网最后更新 2026年11月02日JSP如何实现彩色验证码
这篇文章给大家分享的是有关JSP如何实现彩色验证码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新(用history.go(-1)也会变)
产生验证码图片的文件http://blog.itpub.net/9650775/viewspace-922495/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 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()); %> |
使用验证码图片的文件a.jsp
| <%@ page="" contenttype="text/html;charset=gb2312"> | |
| 系统产生的认证码: | |
| 输入上面的认证码: | |
验证的页面check.jsp
| <%@ page="" contenttype="text/html; charset=gb2312" language="java" import="java.sql.*" errorpage=""> <% String rand = (String)session.getAttribute("rand"); String input = request.getParameter("rand"); %> 系统产生的认证码为: <%= rand=""> 您输入的认证码为: <%= input=""> <% if (rand.equals(input)) { %> 输入相同,认证成功! <% } else { %> 输入不同,认证失败! <% } %> |
感谢各位的阅读!关于"JSP如何实现彩色验证码"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
认证
验证
图象
输入
图片
数字
背景
页面
颜色
生成
彩色
相同
内容
文件
更多
篇文章
系统
不同
不错
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技深圳
互联网络科技有限公司
北京互联网科技有限公司
时间互联网络科技
中国科技互联网公司收入
剑昆互联网络科技有限公司临桂
互联网公司科技股
浙江互联网科技研学营
青岛科技大学互联网大赛研究生
杭州壁岐互联网科技有限公司
互联网科技公司营业执照怎么办理
南通创西澳互联网科技有限公司
小米互联网科技园入驻
上海乐五互联网科技有限公司
互联网界的黑科技
美国五大互联网科技公司市值多少
华人运通互联网科技公司
安徽九吞吴互联网科技有限公司
恒生互联网科技趋势
互联网科技创新方面的资料
没上市的科技互联网公司
互联网科技英文
深圳天众互联网科技公司
兼蜜互联网科技
互联网高科技企业
互联网科技视频素材
互联网科技热点资讯
小米互联网科技园设置
昊天互联网科技有限公司
互联网科技接地气