servlet代码

package cn.guizimo.web.servlet;

import javax.imageio.ImageIO;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.awt.*;

import java.awt.image.BufferedImage;

import java.io.IOException;

import java.util.Random;

@WebServlet("/checkCode")

public class CheckCode extends HttpServlet {

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

int width = 100;

int height = 50;

//创建图片对象

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);

//美化

Graphics g = image.getGraphics();

//背景

g.setColor(Color.PINK);

g.fillRect(0, 0, width, height);

//边框

g.setColor(Color.BLUE);

g.drawRect(0, 0, width - 1, height - 1);

String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

Random ran = new Random();

for (int i = 1; i

int index = ran.nextInt(str.length());

char ch = str.charAt(index);

g.drawString(ch+"",width/5*i,height/2);

}

//干扰线

g.setColor(Color.GREEN);

for (int i = 0; i

int x1 = ran.nextInt(width);

int x2= ran.nextInt(width);

int y1 = ran.nextInt(height);

int y2 = ran.nextInt(height);

g.drawLine(x1,y1,x2,y2);

}

//输出图片到浏览器

ImageIO.write(image, "jpg", resp.getOutputStream());

}

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

this.doPost(req, resp);

}

}

html

window.onload = function () {

var img = document.getElementById("checkCode");

img.onclick = function () {

var data = new Date().getTime();

img.src = "/tomcat_test_war_exploded/checkCode?" + data;

}

}

启动项目

点击图片可以切换验证码

java生成动态验证码_动态生成验证码案例相关推荐

  1. latex自动生成中文目录_自动生成工作表目录三种方法,看哪种适合你?

    如果在一个工作簿内有很多工作表需要去维护管理,一个个的查找显然是很麻烦的,建立一个工作表的导航目录无疑是最便捷的方法. 下面介绍三种生成工作表目录的方法: 一.利用宏表函数生成可导航目录 第1步:定义 ...

  2. eclipse编译java项目class文件_动态编译 Java 代码以及生成 Jar 文件

    导读: 最近在看 Flink 源码的时候发现到一段实用的代码,该代码实现了 java 动态编译以及生成 jar 文件.将其进行改进后可以应用到我们的平台上,实现在平台页面上编写 java 代码语句,提 ...

  3. java验证码图片滑动验证码_图片滑动验证码的生成

    使用Java生成图片滑动验证码 image.png 目前接到了一个新的小需求,要在登录时进行滑动图片验证. 搜了一下网上的demo,没有太多很完整的demo.就参考各种文档自己拼凑了一个出来.整理一下 ...

  4. php生成gif动态图片_动态生成gif格式的图像要注意?

    动态生成gif格式的图像要注意? 更新时间:2006年10月09日 00:00:00   作者: 如果你用 int imagecreatefromgif(string filename); 来取出一张 ...

  5. java 手机动态口令_动态密码TOTP的Java实现

    一.HOTP HOTP 算法,全称是"An HMAC-Based One-Time Password Algorithm",是一种基于事件计数的一次性密码生成算法,详细的算法介绍可 ...

  6. java 反射 动态编译_动态编译java源代码和反射调用问题

    我从教程中得到了以下代码: package com.tom.labs; import java.io.IOException; import java.lang.reflect.Method; imp ...

  7. java 彩色验证码_产生彩色验证码_(javabean实现)

    文件名:Image.java ===================================== /* * Created on 2004-8-4 * * To change the temp ...

  8. java随机数带字母_随机生成一组随机数(带字母和数字)

    随机生成一组随机数(带字母和数字) package com.qfx.util; import java.util.Random; public class CharacterUtils { // 得到 ...

  9. java地图图表动态亮点_动态展示地图和图表

    每年6月底,旧的财年就要结束,新的财年即将开始.这是最繁忙的季节,不仅要对本财年的业绩进行分析和回报,还要制定新财年的计划和目标.如果今年取得了骄人的业绩,在回报时就更要做的尽善尽美.一个出色的Pow ...

最新文章

  1. Matlab中去除exe执行时文件的DOS窗口的方法
  2. Ubuntu创建新用户的正确姿势
  3. POJ1816:Wild Words——题解
  4. SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
  5. NYOJ 82:迷宫寻宝(一)(BFS)
  6. 高性能负载均衡是如何架构的?
  7. ui分离的进程 如何查找窗口句柄_如何使用 Linux screen
  8. wordpress向一个页面POST数据,出现404页面访问不了
  9. java类加载器用途_对于java类加载器的认识(2)
  10. CRC校验算法——C语言实现
  11. Android特效专辑(十)——点击水波纹效果实现,逻辑清晰实现简单
  12. 学习篇-TypeScript-简介
  13. PLY点云数据在PCL中读取与显示
  14. 在web前段,最挣扎的问题尽然是单词!
  15. LeetCode题解(1168):水资源分配优化(Python)
  16. oppo手机怎么打开USB调试模式
  17. 哈利·波特与死亡圣器(下)
  18. 刀魔王带你了解雕刻刀模的生产流程!
  19. 正则表达式识别中英文标点符号
  20. linux看不到隐藏的文件夹,【终极】文件夹隐藏方法,彻底隐藏文件夹的方法!显示隐藏的文件也看不到...

热门文章

  1. ThinkPHP模型连接数据库 查询 ajax
  2. Java的JDBC事务详解
  3. andriod sqlite 详解转载
  4. linux集成开发环境
  5. linux下命令行的使用:使用sed命令操作文件
  6. [开源]jquery.ellipsis根据宽度(不是字数)进行内容截断,支持多行内容
  7. (转)android技巧01:Preferencescreen中利用intent跳转activity
  8. 匿名用户访问用发布站点模板创建网站的列表项时要求登录的问题解决
  9. android 6.0 api 管理,Android 6.0(API23)权限申请问题
  10. Mac安装RocketMQ和可视化控制台教程