`

添加验证码的方法

阅读更多
引用

写一个CheckCodeServlet extends HttpServlet
package util;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class CheckCodeServlet extends HttpServlet {

	public void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//告诉浏览器,服务器返回的是图片。
		response.setContentType("image/jpeg");
		// 图片的内存映像
		BufferedImage image = new BufferedImage(60, 20,
				BufferedImage.TYPE_INT_RGB);
		Random r = new Random();
		Graphics g = image.getGraphics();
		g.setColor(
				new Color(r.nextInt(255), r.nextInt(255),
						r.nextInt(255)));
		g.fillRect(0, 0, 60, 20);
		g.setColor(new Color(0,0,0));
		String number = String.valueOf(r.nextInt(99999)); 
		HttpSession session = 
			request.getSession();
		session.setAttribute("number", number);
		g.drawString(number, 5, 15);
		// 压缩成jpeg格式
		//因为输出的是图片,必须使用字节流进行输出。
		OutputStream os = response.getOutputStream();
		JPEGImageEncoder encoder 
		= JPEGCodec.createJPEGEncoder(os);
		// 把BufferedImage对象中的图像信息编码后
		// 向创建该对象(encoder)时指定的输出流输出
		encoder.encode(image);
	}
}


web.xml配置
<servlet>
    <servlet-name>CheckCodeServlet</servlet-name>
    <servlet-class>util.CheckCodeServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>CheckCodeServlet</servlet-name>
    <url-pattern>/checkcode</url-pattern>
</servlet-mapping>

jsp页面调用
验证码:
<img src="checkcode" id="img1" />
<a href="javascript:;" onclick="document.getElementById('img1').src='checkcode?' + (new Date()).getTime();">换一个</a>
<input type="text" name="number" />
<span style="color:red;">${regist_err}</span>

分享到:
评论

相关推荐

    MVC环境下添加验证码的示例

    本示例将详细介绍如何在MVC环境下添加验证码,并确保其完善性。 首先,我们需要理解MVC架构。MVC是一种设计模式,将应用程序分为三个主要部分:模型(Model)负责数据处理,视图(View)负责用户界面展示,控制器...

    asp.net 网页上添加验证码

    ### ASP.NET 页面上添加验证码详解 #### 一、引言 在现代Web应用开发中,为了防止自动化工具或脚本对网站进行恶意攻击或者滥用,验证码(CAPTCHA)成为了一种常用的验证方式。本文将详细介绍如何在ASP.NET Web应用...

    JSP实现登录功能之添加验证码

    JSP实现登录功能的过程中添加验证码是一项重要的安全措施,可以有效防止自动化工具和机器人对登录接口的恶意攻击。验证码可以是一串字符、图形或者两者的结合,要求用户在登录时输入这串字符来证明自己是真实用户而...

    如梦CMS 添加验证码

    添加验证码功能在网站安全性方面起着至关重要的作用,它可以防止恶意的自动化脚本或机器人进行注册、登录等操作。在如梦CMS中实现验证码功能,可以提高用户账户的安全性,减少非法数据的注入。 首先,我们需要了解...

    ASP.NET多种生成验证码方法源码

    本压缩包包含的"ASP.NET多种生成验证码方法源码"提供了多种创建验证码的技术,适用于登录验证和其他需要用户验证身份的场景。 验证码的主要目标是确保提交请求的是真实的人,而不是计算机程序。它通常要求用户输入...

    JSP中添加验证码简单实例

    在JSP中添加验证码功能是防止机器人或者恶意用户自动提交表单的一种常见方法,例如登录、注册等场景。验证码的主要目的是确保用户是人而不是自动化程序,通过要求用户输入图片上显示的一串随机字符来验证其身份。 ...

    yii2中添加验证码的实现方法

    本文实例讲述了yii2中添加验证码的实现方法。分享给大家供大家参考,具体如下: 首先,在模型中添加验证码字段: public function rules(){ return ['verifyCode', 'captcha'], } 其次,可以在函数attributeLabels...

    python selenium UI自动化解决验证码的4种方法

    本文将详细介绍如何使用Python和Selenium解决验证码问题的四种方法:去掉验证码、设置万能码、验证码识别技术-tesseract以及添加cookie登录。 #### 测试环境 - **操作系统**:Windows 7及以上版本 - **浏览器**:...

    使用matlab的验证码识别

    验证码识别是信息安全领域中的一个重要课题,它...同时,这个项目也提醒我们,随着深度学习技术的发展,现代的验证码识别已经转向了更为复杂的方法,如卷积神经网络(CNN),但MATLAB仍然可以作为一个优秀的入门工具。

    VC数字验证码识别程序

    在这个“VC数字验证码识别程序”中,我们主要关注的是基于模式识别的神经网络方法,这是一种先进的图像处理技术,常用于解决复杂图像识别问题。 验证码,全称“可视化挑战-响应测试”(Visual Challenge and ...

    [asp]怎么添加验证码的解决方法

    将解压文件夹直接释放在需要在某页添加验证码的同目录下 (比如 addnew.asp 需要添加验证码,该文件在 cnbruce 文件夹下,则将 imgchk 文件夹同时释放到 cnbruce 文件夹 中) 2、添加显示验证码和输入框 ...

    三种方法实现验证码

    2. 在方法中生成随机验证码,可以是纯数字、字母或它们的组合。 3. 将生成的验证码保存在Session中,以便后续验证。 4. 使用Graphics2D绘制验证码到BufferedImage对象上,生成验证码图片。 5. 将BufferedImage转换为...

    验证码验证码验证码验证码验证码验证码

    - 将生成的每个字符依次添加到一个字符串中,可以设置验证码的长度,例如6位或8位。 4. **动态时间元素**: - 动态时间在验证码中的应用主要是为了增加破解难度。可以设置验证码的有效期,过期后需要重新生成。这...

    C#多种验证码方法总结

    本文将对"C#"编程语言中实现验证码的各种方法进行详细总结。 1. 图形验证码(Image CAPTCHA) - 图形验证码是最常见的类型,通过生成随机的字符或数字组合,然后扭曲、旋转、加噪,形成一张图片。在C#中,我们可以...

    ASP.NET轻松实现验证码3种方法

    5. **添加干扰线**:通过循环调用`DrawLine`方法在图像上绘制多条随机位置的线条,增加破解难度。 6. **保存并显示验证码**:将生成的图像保存为图片文件或者直接在网页上显示出来。 ### 方法二:基于音频的验证码 ...

    JSP 数字验证码 实现方法

    以下是一个简单的JSP数字验证码的实现方法: 首先,我们来看一下JSP的基本结构。`@%&gt;` 和 `是JSP中的脚本元素,它们分别用于执行Java代码和输出Java表达式的值。在这个例子中,我们主要使用了`@%&gt;`来编写Java代码。...

    delphi7生成简单验证码

    5. **添加噪声**:为了混淆验证码,可以在图像上添加一些随机的线条或点,这可以通过在`Canvas`上随机绘制像素来实现。 6. **扭曲变形**:可选地,我们可以对验证码进行轻微的扭曲,比如改变字符之间的距离或者略微...

    silverlight 实现验证码的3种方法

    3. **添加噪声**:为了增加验证码的复杂性,可以在图像上随机绘制点或线以模拟噪声。 4. **保存图像**:将绘制好的图像转换为Base64字符串,然后在服务器端存储,或者直接传递给客户端。 ### 方法二:基于SVG(可...

    验证码识别 汉字验证码识别

    由于验证码通常会添加各种干扰因素,如像素噪声、斑点、线条等,以增加识别难度,因此需要对图像进行预处理,去除这些噪声。常见的去噪方法有中值滤波、高斯滤波和自适应滤波。例如,中值滤波对于去除椒盐噪声效果...

Global site tag (gtag.js) - Google Analytics