1.servlet, ImageServlet.java
package com.bc.servlet;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ImageServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
// 生成数字和字母的验证码
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
BufferedImage img = new BufferedImage(68, 22,
BufferedImage.TYPE_INT_RGB);
// 得到该图片的绘图对象
Graphics g = img.getGraphics();
Random r = new Random();
Color c = new Color(200, 150, 255);
g.setColor(c);
// 填充整个图片的颜色
g.fillRect(0, 0, 68, 22);
// 向图片中输出数字和字母
StringBuffer sb = new StringBuffer();
char[] ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();
int index, len = ch.length;
for (int i = 0; i < 4; i ++) {
index = r.nextInt(len);
g.setColor(new Color(r.nextInt(88), r.nextInt(188), r.nextInt(255)));
g.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 22));// 输出的字体和大小
g.drawString("" + ch[index], (i * 15) + 3, 18);//写什么数字,在图片的什么位置画
sb.append(ch[index]);
}
request.getSession().setAttribute("piccode", sb.toString());
ImageIO.write(img, "JPG", response.getOutputStream());
}
}
2.web.xml配置servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>ImageServlet</servlet-name>
<servlet-class>com.bc.servlet.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ImageServlet</servlet-name>
<url-pattern>/servlet/ImageServlet</url-pattern>
</servlet-mapping>
</web-app>
3.AdminLogin.jsp调用
<script language="javascript" >
// 重载验证码
function reloadVerifyCode(){
var timenow = new Date().getTime();
document.getElementById("safecode").src="<%=request.getContextPath()%>/servlet/ImageServlet?d="+timenow;
}
</script>
<td>
<img alt="验证码" id="safecode" src="<%=request.getContextPath()%>/servlet/ImageServlet"/>
<a href="javascript:reloadVerifyCode();"><br/>看不清楚,换一个</a>
</td>
分享到:
相关推荐
总的来说,创建Java验证码实例涉及字符生成、图像处理和用户验证等多个环节,这不仅锻炼了开发者在图形编程和安全方面的技能,也是理解Web应用程序交互流程的良好实践。通过不断优化验证码的生成算法和图像效果,...
总结来说,Java自制验证码实例展示了如何使用Servlet和Java的图形处理能力来创建安全的验证码系统。通过自定义验证码的属性,如长度、字符集和视觉效果,我们可以定制适合不同应用场景的验证码,从而有效防止自动化...
在Java Web开发中,验证码是一种常见的安全机制,用于防止自动化的机器人或恶意用户进行非法操作。...希望这个加法验证码实例对你的项目开发有所帮助,同时也提醒你在实际应用中不断探索和优化安全策略。
在Java开发中,验证码是一种常见的安全机制,用于防止自动化脚本或者机器人进行恶意操作,比如注册、登录等。本文将详细讲解如何在J2EE环境中生成验证码,并涉及到使用Session来存储和验证验证码。 首先,验证码的...
这个Java验证码识别的例子提供了一个实战教程,让我们深入了解验证码识别的原理与实现方法。 验证码(CAPTCHA)的主要目的是防止自动化的机器人程序对网站进行恶意操作,例如批量注册、刷票等。而验证码识别技术则...
Java 验证码 java web验证码 servlet 验证码
在这个“java-验证码识别-验证码破解”的主题中,我们将深入探讨如何使用Java进行验证码识别,特别是通过Tess4J库进行OCR(光学字符识别)。 验证码的主要目的是防止自动化的恶意行为,如机器人攻击或垃圾邮件发送...
"纯Java验证码工具类" 提供了一种简便的方法来生成这种安全机制,无需依赖其他语言或库。这个工具类可以被轻松地集成到任何Java项目中,为你的应用程序添加一道防线。 验证码生成通常包括以下几个关键步骤: 1. **...
一个简单的生成彩色验证码的例子,部分代码if (r1 == 13) { r2 = random.nextInt(7); //生成0到7之间的随机数 } else { r2 = random.nextInt(16); //生成0到16之间的随机数 } String str_r2 = rBase[r2]; // ...
这个"Java简易图形验证码实例源码"提供了一个实现多种类型的验证码,包括gif动画、中文字符以及算术问题的形式,这使得验证码更具挑战性,更难被自动识别程序破解。以下是对这个实例源码中的关键知识点的详细解释: ...
在Java编程语言中,验证码(CAPTCHA)是一种用于防止机器自动操作的安全机制,通常用于网页表单提交。验证码工具能够自动生成随机的图形验证码,包括字母、数字等字符,配合背景色、干扰线等元素来增加识别难度,...
在这个JSP随机验证码实例中,我们将深入探讨其工作原理、实现方法以及源码解析。 验证码的核心是生成一组随机的、难以被程序识别的字符或数字组合。在JSP(JavaServer Pages)环境中,我们可以利用Java的强大功能来...
用patchca做的一个实例,eclipse直接导入即可,功能包括:生成验证码(自定义字体,自定义颜色,自定义背景),点击更换,后台验证。
java代码实例-验证码代码
"AJAX+jsp无刷新验证码实例"就是一个展示如何利用AJAX(异步JavaScript和XML)和JSP(JavaServer Pages)技术实现验证码的无刷新验证的具体应用。下面将详细介绍这个实例中的相关知识点。 首先,验证码的主要目的是...
综上所述,这个Java手机验证码注册实例涵盖了多种技术栈,从后端框架到前端交互,再到数据库管理和安全验证,是一个完整的Web开发实践案例。通过学习和实践此类项目,开发者可以提升其在SSM框架下的综合开发能力。
在本实例中,我们将探讨如何使用Java...总的来说,这个Java验证码实例展示了如何使用基本的图形绘制技术来创建简单的图形验证码。对于初学者,这是一个很好的起点,可以在此基础上进行扩展,以适应更复杂的验证码需求。
本话题主要关注如何使用Java生成包含随机加减法问题的图形验证码。这种验证码不仅增加了安全性,还为用户提供了验证他们是否为人类的互动方式。 首先,`IdentifyingCode.java`可能是一个类,它代表验证码对象,包含...
Java 读取验证码 OCR 是一个涉及图像处理和自然语言处理的技术,主要应用于自动化系统中,例如自动登录、数据抓取等场景。OCR(Optical Character Recognition)技术允许计算机程序识别并转换图片中的文本内容,使其...
JQuery调用后台的java类产生图片验证码。 很实用,下载后可以直接运行的实例! 有什么好的建议可以Q我623791070 谢谢