这里写了一个生成验证码的demo
前台可以访问该servlet页面显示验证码
验证码 后台存的session名称为vCode 判断验证码是否正确时可以直接调用
前台通过
这里你就自己引入jq吧

<img src="ValidateCodeServle"  id="src"> <a onclick="code()">看不清楚,换一张</a>
<script>function code(){$.("#src").attr({src:codeservlet()});}function codeservlet(){$.post("ValidateCodeServle",,function(data){return  data;})}
</script>
package com.jdbc.util;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.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** Servlet implementation class ValidateCodeServle*/
@WebServlet("/ValidateCodeServle")
public class ValidateCodeServle extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public ValidateCodeServle() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.setHeader("Pragma", "No-Cache");response.setHeader("Cache-Control", "no-cache");response.setDateHeader("Expries", 0);// 随机数生成类Random random = new Random();// 定义验证码的位数int size = 5;// 定义变量保存生成的验证码String vCode = "";char c;// 产生验证码for (int i = 0; i < size; i++) {// 产生一个26以内的随机整数int number = random.nextInt(26);// 如果生成的是偶数,则随机生成一个数字if (number % 2 == 0) {c = (char) ('0' + (char) ((int) (Math.random() * 10)));// 如果生成的是奇数,则随机生成一个字母} else {c = (char) ((char) ((int) (Math.random() * 26)) + 'A');}vCode = vCode + c;}// 保存生成的5位验证码request.getSession().setAttribute("vCode", vCode);// 验证码图片的生成// 定义图片的宽度和高度int width = (int) Math.ceil(size * 20);int height = 30;BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);// 获取图片的上下文Graphics gr = image.getGraphics();// 设定图片背景颜色gr.setColor(Color.WHITE);gr.fillRect(0, 0, width, height);// 设定图片边框gr.setColor(Color.GRAY);gr.drawRect(0, 0, width - 1, height - 1);// 画十条干扰线for (int i = 0; i < 5; i++) {int x1 = random.nextInt(width);int y1 = random.nextInt(height);int x2 = random.nextInt(width);int y2 = random.nextInt(height);gr.setColor(randomColor());gr.drawLine(x1, y1, x2, y2);}// 设置字体,画验证码gr.setColor(randomColor());gr.setFont(randomFont());gr.drawString(vCode, 10, 22);// 图像生效gr.dispose();// 输出到页面ImageIO.write(image, "JPEG", response.getOutputStream());}// 生成随机的颜色private Color randomColor() {int red = r.nextInt(150);int green = r.nextInt(150);int blue = r.nextInt(150);return new Color(red, green, blue);}private String[] fontNames = { "宋体", "华文楷体", "黑体", "微软雅黑", "楷体_GB2312" };private Random r = new Random();// 生成随机的字体private Font randomFont() {int index = r.nextInt(fontNames.length);String fontName = fontNames[index];// 生成随机的字体名称int style = r.nextInt(4);int size = r.nextInt(3) + 24; // 生成随机字号, 24 ~ 28return new Font(fontName, style, size);}}

java生成验证码登录,生成验证码相关推荐

  1. Java登录专题-----手机验证码登录 发送验证码

    1.打印日志 ,检验入参 入参为  mobile 手机号 action动作  分为注册,与登录 2. UserInfoModel userInfoModel = new UserInfoModel() ...

  2. SpringBoot——短信发送、手机验证码登录

    目录 一.短信发送 1.1 阿里云短信服务 1.1.1 设置短信签名 1.1.2 模板管理 1.1.3 设置AccessKey 1.2 短信发送--代码开发 1.2.1 导入maven坐标 1.2.2 ...

  3. 各种登录源码来了!基础登录、验证码登录、小程序登录...全都要!

    现在开发个应用登录比以前麻烦的多.产品经理说用户名密码登录.短信登录都得弄上,如果搞个小程序连小程序登录也得安排上,差不多就是我全都要. 多种登录途径达到一个效果确实不太容易,今天胖哥在Spring ...

  4. 阿里云账户使用手机号+验证码登录开启方法、

    阿里云账号登录支持手机号验证码登录方式,但是如果是2022.4.1前注册的账号,需要先在账号中心开启手机号登录,才可以使用手机号登录.阿里云百科来详细说下阿里云账号开启手机号登录的方法: 阿里云账号手 ...

  5. java用户的登录图片_Java 如何用 token 做用户登录认证

    1.什么是 token??? Token 是服务端生成的一串字符串,以作客户端进行请求的一个令牌. 2.token 做用户登录认证 ● 流程 3. Java 实现 ● 用户登录生成 token,保存到 ...

  6. 菜鸟学Java(六)——简单验证码生成(Java版)

    转载自  菜鸟学Java(六)--简单验证码生成(Java版) 验证码大家都知道,它的作用也不用我多说了吧.如果不太清楚请参见百度百科中的解释,一般验证码的生成就是随机产生字符(数字.字母或者汉字等) ...

  7. javaweb登录界面验证码自动生成,点击重新生成验证码,验证码与输入框的校验

    当进入登录界面时,验证码图片自动生成,验证码图片颜色随机,字母颜色随机,该代码只是随机生成小写英文字母,没有设置大写字母和数字 点击验证码图片重新生成验证码 验证码输入错误时,提示出来 验证码输入正确 ...

  8. java 图形校验_java图形验证码生成工具类 web页面校验验证码

    java图形验证码生成工具类 web页面校验验证码 发布于 2020-7-14| 复制链接 摘记: 最近做验证码,参考网上案例,发现有不少问题,特意进行了修改和完善.验证码生成器: ```java i ...

  9. java 生成校验验证码_java生成验证码并进行验证

    一实现思路使用BufferedImage用于在内存中存储生成的验证码图片使用Graphics来进行验证码图片的绘制,并将绘制在图片上的验证码存放到session中用于后续验证 最后通过ImageIO将 ...

最新文章

  1. ReferenceQueue的使用
  2. matlab数字滤波器设计函数汇总(转载)
  3. intellij2018使用2019的主题
  4. c语言 有趣的代码,分享一段有趣的小代码
  5. c#日期转换周几_C#中获取任意日期为星期几三种方法分享
  6. Spring的ID增长器使用示例(MySql数据库)
  7. 公告栏模板php代码,如何调用destoon自定义模板及样式的公告栏
  8. java常见面试题:Java程序员面试题(三)
  9. android 修改系统默认语言
  10. Linux文件系统及常用命令
  11. facebook是什么
  12. Android 广告视频循环播放 缓存 处理方案
  13. 学习记录, 带你玩转Pyppeteer (全干货)
  14. 浅谈38K红外发射接受编码(非常好)
  15. html账号输入框整体透明,HTML在透明输入框里添加图标的实现代码
  16. NSDate-日期类nbsp;OC——第七天(1)
  17. solr的安装和配置
  18. html飞机动画,基于纯CSS3纸飞机炫酷动画特效
  19. How Big Data Can Help Save the World
  20. PMP到底难不难考?

热门文章

  1. Circle Line
  2. MySQL Workbench 5.2.45 GA 发布
  3. RedHat5.6x64下配置Oracle11g
  4. 成功修改fastreport3.15,使其支持中日韩四(CJK)中编码PDF的导出
  5. 数据中心使用dtu远程连接oracel 9i数据库问题
  6. 【Hibernate步步为营】--多对多映射详解
  7. 深入Redis内部-Redis 源码讲解
  8. 2022二区考研及调剂学校汇总
  9. shell实例第16讲:猜拳游戏
  10. java-自定义数据排序