直接引入下面的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));
System.out.println("rand="+rand);
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);
}
System.out.println("sRand="+sRand);
// 将认证码存入SESSION
session.setAttribute("KAPTCHA_SESSION_KEY",sRand);
// 图象生效
g.dispose();
// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
out.clear();
out = pageContext.pushBody();
%>
分享到:
相关推荐
在提供的"JSP验证码实例源码"中,你可以找到以下主要文件: - `VerifyCodeServlet.java`:这是处理验证码生成和验证的核心Servlet,其中包含了随机字符串生成和图片绘制的逻辑。 - `verify.jsp`:这是一个简单的JSP...
在IT行业中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,它是基于Java的。...但作为初学者的实践项目,这个简单的JSP验证码实例是一个很好的起点,能够帮助理解动态网页开发的基本流程和原理。
可以实现简单的用户登录验证码实例 ! 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); ...
10. 构造函数与参数化:`RandImgCreater`类可能包含一个构造函数,允许设置验证码的长度、字符集以及背景颜色等参数,以实现验证码的自定义。 11. 安全性考虑:虽然简单的图片验证码可以防止一些基础的自动化攻击,...
总的来说,这个示例提供了一个使用jsp和net.js实现验证码验证的简单方法,对于初学者来说是很好的实践项目。通过学习这个例子,你可以了解到如何在Web应用中实现基本的安全防护措施,以及如何利用现有的库来简化开发...
以下将详细介绍如何在JSP中创建一个简单的验证码实例。 1. **验证码的基本原理** - 验证码通常由随机生成的一串字符或数字组成,这些字符扭曲、旋转、加噪,使得人类可以轻易识别但机器难以识别。 - 用户在提交...
在本教程中,我们将深入探讨如何在Java Web项目中,使用MyEclipse开发工具实现一个简单的JSP页面验证码。 首先,验证码的核心在于生成随机且不可预测的字符序列。在Java中,我们可以使用`java.util.Random`类来生成...
总结,这个"验证码jsp源代码"实例展示了如何利用JSP和Servlet创建一个简单的验证码登录系统,涵盖了服务器端动态页面生成、会话管理、表单提交验证等多个核心知识点。通过深入理解这些概念,开发者可以构建更复杂、...
通过以上步骤,我们就实现了一个简单的JSP验证码系统。虽然这种实现方式相对基础,但已经足够应对大多数Web应用的需求。在实际开发中,可以根据项目需求进行扩展,如使用更复杂的算法生成验证码,或者结合音频验证码...
protected void Page_Load(object sender, EventArgs e) { VryImgGen gen = new VryImgGen(); string verifyCode = gen.CreateVerifyCode(5, 1); Session["VerifyCode"] = verifyCode.ToUpper();...
通过这个实例,我们了解了如何利用Java和JSP创建一个动态验证码系统,包括生成随机字符串、绘制验证码图像以及在客户端和服务器之间进行交互验证。这样的功能对于网站的安全性至关重要,因为它能有效地防止自动化...
一个简单的JSP验证码实现可能包括以下代码片段: ```java ;charset=UTF-8" %> ! String randomStr = ... // 生成随机中文字符串 %> Graphics g = ... // 获取图形对象 g.drawString(randomStr, ...); // ...
本项目是一个简单的验证码验证实例,使用了JavaScript语言在JSP(JavaServer Pages)环境中实现。下面将详细讲解验证码验证的基本原理和这个项目的实现方式。 验证码的基本原理是生成一段随机的、难以被机器自动...
下面是一个简单的JSP实现验证码功能的代码示例: ```jsp // 生成随机验证码 Random rand = new Random(); String code = ""; for (int i = 0; i ; i++) { code += rand.nextInt(26) + 'A'; } ...
1. **请求生成验证码**: 用户访问页面时,JSP会向服务器发送请求,请求一个验证码。 2. **Servlet生成验证码**: Servlet接收到请求后,使用随机算法生成一个唯一的验证码字符串,并将其存储在服务器的session中。 3....
下面是一个简单的JSP验证码实现: ```jsp ; charset=UTF-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> String captchaCode = ""; // 生成随机验证码 // 这里可以使用Java的Random类...
"community"文件可能是一个示例社区应用的目录,其中可能包含了如何将这个验证码集成到实际项目中的实例代码或配置文件。开发者可以通过参考这个目录下的文件来学习如何在自己的Web应用中使用这个验证码。 总的来说...
### JSP页面验证码完整实例知识点 #### 1. JSP页面验证码概念 验证码(CAPTCHA)是“全自动区分计算机和人类的图灵测试”(Completely Automated Public Turing test to tell Computers and Humans Apart)的简称...
本文实例讲述了JSP验证码简单生成方法。分享给大家供大家参考。具体如下: <%@ page contentType=image/jpeg import=java.awt.*,java.awt.image.*,java.util.*,javax.imageio.* %> <%! Color ...
在这个“验证码登陆小实例(二)项目源码”中,我们主要探讨的是如何利用JavaWeb技术来构建一个简单的用户注册和登录系统,并且在注册过程中加入了验证码验证功能,以提高安全性。这个实例对于初学者来说,是理解Web...