java验证码生成

第一种方式:纯代码

先写jsp:

在编写CaptServlet:

 1 package cn.itcast.web.controller;
 2
 3 import java.awt.Color;
 4 import java.awt.Font;
 5 import java.awt.Graphics;
 6 import java.awt.image.BufferedImage;
 7 /**
 8  * 用户登陆
 9  */
10 import java.io.IOException;
11 import java.util.Random;
12
13 import javax.imageio.ImageIO;
14 import javax.servlet.ServletException;
15 import javax.servlet.http.HttpServlet;
16 import javax.servlet.http.HttpServletRequest;
17 import javax.servlet.http.HttpServletResponse;
18
19 public class CaptServlet extends HttpServlet {
20     private static final long serialVersionUID = 1L;
21
22     protected void doGet(HttpServletRequest request, HttpServletResponse response)
23             throws ServletException, IOException {
24         int width = 120;
25         int height = 25;
26         //验证码
27         BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
28         //画笔
29         Graphics g = image.getGraphics();
30             //设置颜色,设置一个边线
31             g.setColor(Color.green);
32             g.drawRect(0, 0, width, height);
33             //设置填充色
34             g.setColor(Color.yellow);
35             g.fillRect(1, 1, width-2, height-2);
36             //干扰线
37             g.setColor(Color.gray);
38             Random r = new Random();
39             g.drawLine(r.nextInt(width), r.nextInt(height), r.nextInt(width), r.nextInt(height));
40             //随机验证码
41             g.setColor(Color.black);
42             g.setFont(new Font("宋体", Font.BOLD|Font.ITALIC, 20));
43             int x = 20;
44             for(int i=0;i<4;i++) {
45             String num = r.nextInt(10)+"";
46             g.drawString(num, x, 20);
47             x+=20;
48             }
49         //输出到页面
50             ImageIO.write(image, "jpg", response.getOutputStream());
51     }
52

53     protected void doPost(HttpServletRequest request, HttpServletResponse response)
54             throws ServletException, IOException {
55         // TODO Auto-generated method stub
56         doGet(request, response);
57     }
58
59 }

页面效果:

//**********************推荐(validatecode 的jar包网上能搜到)

两行轻松搞定。**********************************************************************************************

原文地址:https://www.cnblogs.com/csh520mjy/p/10274438.html

时间: 2024-11-13 14:11:14

java验证码生成的相关文章

JAVA 验证码生成。SimpleCaptcha

去官方网站下载Jar包: http://simplecaptcha.sourceforge.net/ Javadocs: http://simplecaptcha.sourceforge.net/javadocs/index.html 自己书写工具类: /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose To

用java Graphics生成验证码

以下下是API文档对Graphics的介绍! Graphics 类是所有图形上下文的抽象基类,允许应用程序在组件(已经在各种设备上实现)以及闭屏图像上进行绘制. Graphics 对象封装了 Java 支持的基本呈现操作所需的状态信息.此状态信息包括以下属性: 要在其上绘制的 Component 对象. 呈现和剪贴坐标的转换原点. 当前剪贴区. 当前颜色. 当前字体. 当前逻辑像素操作函数(XOR 或 Paint). 当前 XOR 交替颜色(参见 setXORMode(java.awt.Colo

java实现生成简单图片验证码

原文:java实现生成简单图片验证码 源代码下载地址:http://www.zuidaima.com/share/1550463428840448.htm 项目载图: 该项目要转换为Dynamic web project http://www.zuidaima.com/blog/1618162161323008.htm 另外缺少jar包: http://www.zuidaima.com/jar/search/jstl-1.0.1.htm http://www.zuidaima.com/jar/s

java自动生成验证码

代码结构: web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="

java web验证码生成总结(包括servlet、jsp和struts2实现)(转)

一.使用纯Servlet实现验证码 (1)在web.xml配置: [java] view plaincopy <servlet> <servlet-name>image</servlet-name> <servlet-class>org.test.web.AuthImage</servlet-class> </servlet> <servlet-mapping> <servlet-name>image</

浅谈JAVA验证码~

这两天在帮同学做个项目,项目中需要做个验证码,说实话那么多年竟然没注意过这东西,原理很简单,贴出来给大家做个参考. 1.简单介绍 一般稍微有些经验的程序员都不会再自己写原生验证码生成了,因为各种强大的开源组件,足以解决我们大部分的需求.但是,毕竟也是刚接触这东西,还需要从原理入手的. 项目效果图: 下面我就简单介绍下原生和使用开源项目kaptcha生成验证码的两种形式. 2.jdk原生生成验证码 效果: 2.1 验证码生成的流程 1.定义BufferedImage(图像数据缓冲区)对象 2.获得

利用谷歌 kaptcha 进行验证码生成

1 package main.com.smart.controller; 2 3 import com.google.code.kaptcha.Producer; 4 import main.com.smart.utils.CaptchaProducer; 5 import main.com.smart.utils.RedisClient; 6 import org.apache.log4j.Logger; 7 import org.apache.log4j.spi.LoggerFactory;

随机验证码生成代码 (转)

随机验证码生成代码 package com.zuidaima.core.util; import java.util.Random; public class RandomUtil { public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; public static final String LETTERCHAR = "abc

Web---图片验证码生成教程详解-从简单到复杂-从本地到前后台

首先,我们先来看本地如何生成图片验证码的,再来写输出到网页的验证码如何实现. 先来看最简单的-实现的功能是,将一个字符串变成图片写入到文件中 实现代码: package cn.hncu.img; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOE