JSP实例:用JSP程序做一个随机彩色认证码

js|程序|随机

<%@ 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(255,255,255));
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());

%>

时间: 2024-10-31 09:21:29

JSP实例:用JSP程序做一个随机彩色认证码的相关文章

网站建设-个人小白,对jsp不太熟悉,做一个网站,遇到了点问题,在线等牛人解答

问题描述 个人小白,对jsp不太熟悉,做一个网站,遇到了点问题,在线等牛人解答 SEP_PADDING = 5; HANDLE_PADDING = 7; var yToolbars = new Array(); var YInitialized = false; function temp() { } function insertHtml(HtmlCode) { var win=window.editor.Composition.document;//其中编辑区域是gledit.jsp中的一个

jsp 网站开发-想要做一个网站上的图片下载的链接,有一行代码看不懂,求指导

问题描述 想要做一个网站上的图片下载的链接,有一行代码看不懂,求指导 d3.select(this).attr("href", "data:image/svg+xml;charset=utf-8;base64," + btoa(unescape(encodeURIComponent( svg.attr("version", "1.1") .attr("xmlns", "http://www.w3.

图形认证码技术的JSP实现

js|图形  实现认证码技术,需要以下几方面的准备: 1.生成认证码: 我们可以让系统随机产生一个数字来作为认证码,这方面在Javascript脚本语言和JAVA语言中均可得以实现.前者可以用Math.random()得到一个介于0与1之间的小数,用它乘以10000再取整数部分,即可得到0至9999之间的随机数.后者可以用Random类的nextInt(N)方法得到一个介于0至N-1之间的随机类. 在实现时,我们采用了前者,即用Javascript生成的随机数作为认证码.主要原因是Javascr

JSP实例:Java实现随机验证码功能实例

现在许多系统的注册.登录或者发布信息模块都添加的随机码功能,就是为了避免自动注册程序或者自动发布程序的使用. 验证码实际上就是随机选择一些字符以图片的形式展现在页面上,如果进行提交操作的同时需要将图片上的字符同时提交,如果提交的字符与服务器session保存的不同,则认为提交信息无效.为了避免自动程序分析解析图片,通常会在图片上随机生成一些干扰线或者将字符进行扭曲,增加自动识别的难度. 在这里,我们使用servlet来实现随机验证码的实现.   package com.servlet; impo

JSP入门之HelloWorld程序实例_JSP编程

本文实例讲述了JSP入门之HelloWorld程序.分享给大家供大家参考,具体如下: 这里讲述第一个JSP-HelloWorld!每一次的"初恋"都带着神秘感,揭开JSP神秘的面纱! JSP也是j2ee的一个规范. JSP(java  service Page),是由sun公司倡导.许多公司参与一起建立的动态网页技术标准. JSP与html的区别是在网页中嵌入java代码和JSP标记,形成.jsp的文件. JSP开发的web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运

JSP技巧教你如何成为一个成功的Jsp程序员

个普通的错误是把JSP当作简化的 Java.它不是,(事实上, JSP 是简化的 servlets .)程序员通常试着没有学习要求的支持技巧而 直接学习 JSP .JSP 是一个衔接技术,并且成功地连接你需要理解的另外的技术.如果你已经知道 Java,HTML 和 Javascript,这意味着 JSP 将确实是简单的. 需要成为一个成功的 JSP 程序员可以参考这个时间表.请注意下列: *忽略你已经熟悉的步骤. *训练的时间只是代表学习好足够的基础时间,这样才能转移到下一步. 1.建立并且理解

使用javascript做的一个随机点名程序

 这篇文章主要介绍了使用javascript做的一个随机点名程序,经测试,效果相当不错,需要的朋友可以参考下  代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">  <html>  <head>  <meta http-equiv="Content-

在需要许多不同jsp页面反馈后台数据处理的错误信息的时候,如何只做一个error.jsp页面?

问题描述 在需要许多不同jsp页面反馈后台数据处理的错误信息的时候,如何只做一个error.jsp页面? 如题所示,本人现在在写一个结构比较简单的基于Jsp/Servlet的web系统. 不同jsp页面反馈后台数据处理的错误时候,如何只做一个error.jsp页面然后根据各个servlet情况显示错误信息? 比如在许多Servlet中,举一个例子: //前略 if(MainDAO.createAssess(credit,usertype,ordersID,orderstype)>-1){ res

jsp做一个论坛回复界面求助

问题描述 jsp做一个论坛回复界面求助 rt,一楼是帖子 下面是各个用户的回复,最底下是回复界面,一个form里包含一个textarea填写回复信息,一个file用来上传图片,一个div用于图片预览. 原先我是让上传图片处为一个超链接到一个新页面里上传图片,把上传地址保存到数据库和session中,通过session在回复界面显示预览.现在要求把图片上传和回复放到一个页面里做,格式如下 <form1> <textarea>回复信息</textarea> <form