一:生成页面的imageCode.jsp
<%@ page contentType="image/jpeg" import="java.util.*,java.awt.*,java.io.*,java.awt.image.*,javax.imageio.*" pageEncoding="utf-8"%>
<%!
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=70, height=38;
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,28));
//画边框
//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+10,28);
}
// 将认证码存入SESSION
session.setAttribute("rand",sRand);
// 图象生效
g.dispose();
OutputStream output=response.getOutputStream();
// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
output.flush();
out.clear();
out = pageContext.pushBody();
%>
二:前台login.jsp 验证码的显示
<img onclick="javascript:loadimage();" title="换一张试试" name="randImage" id="randImage" src="<%=initBasePath%>imageCode.jsp">
三:验证图片切换事件
<script language="javascript" type="text/javascript">
function loadimage(){
document.getElementById("randImage").src = "<%=initBasePath%>imageCode.jsp?"+Math.random();
}
</script>
四:验证
在后台获取session里存放的验证码和验证码输入框里的数据进行比较
相关推荐
在jsp登录页面生成验证码,并在登录的时候在后台进行验证码是否一致的比较。
这种做法的好处是,可以在不离开JSP页面的情况下完成验证码的生成和输出,简化了开发流程。然而,考虑到性能和代码组织,实际项目中更推荐使用Servlet来处理这类任务,因为它们更适合处理I/O和控制HTTP响应。
// 生成验证码逻辑 String captchaCode = generateCaptchaCode(); session.setAttribute("captcha", captchaCode); // 将验证码绘制为图像并输出 byte[] imageBytes = drawCaptchaImage(captchaCode); ...
用jsp页面的方式实现验证码的生成和获取
### JSP页面验证码生成图片详解 #### 一、概述 在网站登录或注册过程中,为了防止恶意登录或机器人操作,通常会使用验证码机制。本文档详细介绍了一种利用JSP技术生成验证码图片的方法。该方法通过Java后端动态...
彩色验证码的实现是在生成验证码的基础上增加了颜色元素,使得验证码更难以被自动化工具识别,增强了安全性。 JSP是一种基于Java的服务器端脚本语言,用于创建动态网页。在本项目中,`code.jsp`是核心页面,它负责...
在这个验证码实例中,JSP页面将负责生成并显示验证码图像。 在项目中,`checkcode.jsp`是核心的验证码生成页面。它会通过以下步骤生成验证码: 1. **随机生成验证码字符串**:程序会随机选择一定数量的字符(数字...
本话题主要围绕"jsp动态生成验证码"展开,我们将深入探讨如何在JavaServer Pages (JSP) 中实现这一功能。 首先,验证码的生成通常涉及到两个主要部分:后端生成逻辑和前端展示。在JSP中,这通常通过Servlet和...
在实际开发中,我们可以使用现成的库,如Captcha4j或JCaptcha,它们提供了许多预设的验证码样式和配置选项,使得生成验证码变得更加方便。 总的来说,生成JSP图片验证码涉及了Java图像处理、随机数生成、Session...
在Web开发中,使用JSP(JavaServer Pages)来生成验证码图片是一种常见的方法。下面我们将详细讨论如何在JSP中实现验证码的生成。 首先,我们需要理解验证码的基本原理。验证码通常包含一串随机的字母和数字,有时...
在JSP页面的HTTP响应中,我们需要设置正确的Content-Type(通常是"image/jpeg"或"image/png"),然后使用ImageIO.write方法将BufferedImage对象转换为流并写入响应,这样浏览器就能显示这个验证码图片。 另一方面,...
5. **存储验证码**:在生成验证码后,我们需要将其值存储在服务器的会话(session)中,以便稍后验证用户输入时进行比较。 6. **输出图像**:最后,JSP将生成的图像作为HTTP响应的一部分发送给客户端浏览器,同时在...
这是一个关于jsp页面验证码生成,可以生成页面的验证码,可以检验验证码是否正确
4. **显示验证码**:在JSP页面上,我们可以使用`<img>`标签显示生成的验证码图像,其src属性指向一个Servlet,该Servlet负责生成并返回图像。 5. **验证用户输入**:当用户输入验证码后,提交表单时,服务器端会...
在本主题中,我们关注的是"最新JSP生成验证码"的技术实现。JSP(JavaServer Pages)是Java平台上的一个动态网页技术,允许开发者在HTML页面中嵌入Java代码,以生成动态内容。现在让我们深入探讨如何在JSP中生成...
JSP是一种动态网页技术,它允许开发人员在HTML页面中嵌入Java代码,使得服务器端能够生成动态内容。在创建验证码时,JSP将用于生成随机数字并将其转化为图像。 生成随机验证码通常包括以下步骤: 1. **生成随机...
Jsp生成随机验证码 1.使用方式:在Jsp页面使用标签即可,例如:<img src="../image.jsp" title="验证码" alt="验证码" id="vCode" /> 2.本代码生成的验证码是一张 由26个英文字母和0-9随机组成的一个组合
本文将详细讲解如何在JSP页面中创建和使用验证码。 首先,验证码的生成通常涉及到随机字符的产生和图像的绘制。在JSP中,我们可以使用Java的`java.util.Random`类来生成随机数字和字母,然后结合`java.awt`和`javax...
在IT领域,生成验证码(CAPTCHA)是一种广泛用于防止恶意自动化程序(如机器人或爬虫)的手段。验证码通常由一串随机字符组成,用户需要输入显示的图像中的字符以证明他们是人类。在这个场景中,我们关注的是在JSP...
1. JSP 验证码生成:使用 JSP 生成验证码,包括生成验证码图片、将验证码存入 SESSION 等。 * 使用 JSP 生成验证码图片,通过 BufferedImage 和 Graphics 实现验证码图片的生成。 * 将验证码存入 SESSION,以便...