图形验证码(JSP+Servlet)

图形验证码是各大系统中登录注册模块必备的功能之一,主要用于防止暴力破解。图形验证码的基本原理很简单,可分为以下5步:
(1)建立图形缓冲区
(2)在图形缓冲区上用随机颜色填充背景
(3)在图形缓冲区上输出验证码。
(4)将验证码保存在HttpSession对象中。
(5)向客户输出图形验证码。
废话少说,直接上代码:本例中,通过ValidationCode类实现图形验证码功能,这是一个Servlet类,在客户端只需要向访问普通Servlet一样访问ValidationCode类即可。该类的代码如下:

package servlet;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
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;
import javax.servlet.http.HttpSession;

public class ValidationCode extends HttpServlet{
   

    //图形验证码的字符集
    private static String codeChars = "%#23456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    //返回一个随机三色(color对象)
    private static Color getRandomColor(int minColor,int maxColor){
        Random random = new Random();
        if(minColor>255){
            minColor=255;
        }
        if(maxColor>255){
            maxColor=255;
        }
        //获取红色的随机颜色
        int red = minColor +random.nextInt(maxColor-minColor);
        int green = minColor +random.nextInt(maxColor-minColor);
        int blue = minColor +random.nextInt(maxColor-minColor);
        return new Color(red,green,blue);
    }
    @Override
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值