image.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,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<55;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());
%>
调用比较简单:<img border=0 src="image.jsp" id="img"> 即可
每次刷新都存入session("rand")中,取出校验即可
分享到:
相关推荐
jsp+servlet编写的验证码程序是一个简单的验证码生成程序,使用jsp和servlet技术来生成验证码。该程序使用了java.awt包来生成随机颜色和随机字符,并使用java.awt.image.BufferedImage类来生成验证码图片。该程序...
在本案例中,我们将探讨如何使用Java的`java.awt`包来生成一个简单的图片验证码。 首先,生成图片验证码的核心是创建并绘制一个包含随机文本的图片。`HelloImage.java`展示了这个过程的基本步骤: 1. **创建...
总的来说,"jsp验证码程序"是一个利用JSP技术构建的简单但有效的安全防护措施,旨在保护网站免受自动化攻击,确保用户交互的真实性。了解并掌握如何创建这样的验证码对于开发安全的Web应用至关重要。
**JSP验证码图片详解** 验证码(CAPTCHA)是一种防止恶意自动化程序(如机器人或爬虫)进行非法操作的安全机制。在网页开发中,JSP(Java Server Pages)被广泛用于生成动态的、难以通过机器自动识别的验证码图片。...
本文将详细介绍如何使用JSP来实现一个简单的数字验证码图片的生成。 首先,我们要理解验证码的基本原理。验证码通常包含一串随机生成的字符或数字,这些字符或数字在图片上以扭曲、变形的方式显示,用户需要手动...
本教程将深入讲解如何使用JSP来生成彩色的验证码程序。 一、验证码的基本原理 验证码的主要目的是通过要求用户输入图片上显示的一串随机字符,来验证用户是人而非机器。这些字符通常是扭曲的,以便增加机器识别的...
在JSP登录页面上,图形验证码会随机生成一组字符,将其显示为图像,然后要求用户输入看到的字符以证明他们不是计算机程序。 实现JSP图形验证码的步骤大致如下: 1. **生成随机字符串**:首先,我们需要在服务器端...
在这个"JSP生成彩色验证码程序例子"中,我们将深入探讨如何利用JSP实现一个功能丰富的彩色验证码生成器。 验证码的主要目的是为了防止自动机器人或恶意脚本进行非法操作,例如防止垃圾邮件、注册机等。它通过显示一...
生成JSP图片验证码的过程包括以下几个关键步骤: 1. **生成随机字符串**:首先,我们需要创建一个包含字母和数字的随机字符串。这可以通过Java的`Random`类和`StringBuilder`类来实现,或者使用更安全的`...
总的来说,生成JSP图片验证码涉及了Java图像处理、随机数生成、Session管理等多个知识点。通过合理的实现,可以有效地防止自动化攻击,保护网站的安全。在实践中,我们需要不断优化验证码的设计,以平衡用户体验和...
总结来说,这个项目提供了一个使用Java Web技术实现的验证码识别系统,结合了JSP和Servlet进行前后端交互,并且利用OCR技术来自动化识别图片验证码,尤其值得一提的是,它还具备处理中文文件名图片的能力。...
总之,基于JSP的图形验证码源码提供了一种简单但有效的安全机制,通过动态生成和验证图像验证码,可以有效抵御自动化攻击,保护Web应用的安全。理解其工作原理和实现细节,对于Web开发者来说至关重要。
【标题】"jsp图片验证码源代码 自由模块"涉及的知识点主要集中在Java服务器页面(JSP)技术、图片验证码的实现以及模块化的编程思想。验证码通常用于防止自动化程序(如机器人)对网站进行恶意操作,例如批量注册、...
_jsp_jsp 图片 验证_jsp 验证码_验证码"这个资源中,我们讨论的是一种基于JSP的数字验证码,其特点是生成一个包含4个随机数字的图像,并且具有随机的杂乱背景,这样可以增加机器识别的难度。 实现JSP验证码主要涉及...
1. 图片验证码(CAPTCHA):图片验证码是一种防止自动化程序(如机器人或爬虫)非法操作网站的机制,它要求用户输入图片上显示的一串随机字符,以此来验证用户是人类而非机器。 2. Java图形库:在Java中,`java.awt...
- **添加干扰元素**: 在图片上随机添加一些干扰点,使得其他程序难以识别验证码。 - **输出图片**: 将最终的图片输出到客户端浏览器。 ```jsp *, java.awt.image.*, java.util.*, javax.imageio.*" %> // 图片尺寸...
以下是一个简单的JSP示例,展示如何生成验证码图片: ```jsp ; charset=UTF-8" pageEncoding="UTF-8"%> String captchaText = ""; // 生成随机字符串 BufferedImage image = null; // 创建图像对象 // ... 编写...
在JSP中,我们可以使用Java的Random类生成验证码,然后将其存储在服务器端(比如Session),同时将验证码的图片发送到客户端。 接下来,我们来看看异步验证的过程。在用户输入验证码后,不刷新整个页面,而是使用...
验证码信息为图片。每一行代码均有注释,通俗易懂。 实现步骤: 1、创建web工程 2、在jsp页面,编写一个请求servlet的名称"> 3、编写一个servlet,在servlet中产生图形验证码 -----------------------------------...