java生成验证码登录,生成验证码
这里写了一个生成验证码的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生成验证码登录,生成验证码相关推荐
- Java登录专题-----手机验证码登录 发送验证码
1.打印日志 ,检验入参 入参为 mobile 手机号 action动作 分为注册,与登录 2. UserInfoModel userInfoModel = new UserInfoModel() ...
- SpringBoot——短信发送、手机验证码登录
目录 一.短信发送 1.1 阿里云短信服务 1.1.1 设置短信签名 1.1.2 模板管理 1.1.3 设置AccessKey 1.2 短信发送--代码开发 1.2.1 导入maven坐标 1.2.2 ...
- 各种登录源码来了!基础登录、验证码登录、小程序登录...全都要!
现在开发个应用登录比以前麻烦的多.产品经理说用户名密码登录.短信登录都得弄上,如果搞个小程序连小程序登录也得安排上,差不多就是我全都要. 多种登录途径达到一个效果确实不太容易,今天胖哥在Spring ...
- 阿里云账户使用手机号+验证码登录开启方法、
阿里云账号登录支持手机号验证码登录方式,但是如果是2022.4.1前注册的账号,需要先在账号中心开启手机号登录,才可以使用手机号登录.阿里云百科来详细说下阿里云账号开启手机号登录的方法: 阿里云账号手 ...
- java用户的登录图片_Java 如何用 token 做用户登录认证
1.什么是 token??? Token 是服务端生成的一串字符串,以作客户端进行请求的一个令牌. 2.token 做用户登录认证 ● 流程 3. Java 实现 ● 用户登录生成 token,保存到 ...
- 菜鸟学Java(六)——简单验证码生成(Java版)
转载自 菜鸟学Java(六)--简单验证码生成(Java版) 验证码大家都知道,它的作用也不用我多说了吧.如果不太清楚请参见百度百科中的解释,一般验证码的生成就是随机产生字符(数字.字母或者汉字等) ...
- javaweb登录界面验证码自动生成,点击重新生成验证码,验证码与输入框的校验
当进入登录界面时,验证码图片自动生成,验证码图片颜色随机,字母颜色随机,该代码只是随机生成小写英文字母,没有设置大写字母和数字 点击验证码图片重新生成验证码 验证码输入错误时,提示出来 验证码输入正确 ...
- java 图形校验_java图形验证码生成工具类 web页面校验验证码
java图形验证码生成工具类 web页面校验验证码 发布于 2020-7-14| 复制链接 摘记: 最近做验证码,参考网上案例,发现有不少问题,特意进行了修改和完善.验证码生成器: ```java i ...
- java 生成校验验证码_java生成验证码并进行验证
一实现思路使用BufferedImage用于在内存中存储生成的验证码图片使用Graphics来进行验证码图片的绘制,并将绘制在图片上的验证码存放到session中用于后续验证 最后通过ImageIO将 ...
最新文章
- ReferenceQueue的使用
- matlab数字滤波器设计函数汇总(转载)
- intellij2018使用2019的主题
- c语言 有趣的代码,分享一段有趣的小代码
- c#日期转换周几_C#中获取任意日期为星期几三种方法分享
- Spring的ID增长器使用示例(MySql数据库)
- 公告栏模板php代码,如何调用destoon自定义模板及样式的公告栏
- java常见面试题:Java程序员面试题(三)
- android 修改系统默认语言
- Linux文件系统及常用命令
- facebook是什么
- Android 广告视频循环播放 缓存 处理方案
- 学习记录, 带你玩转Pyppeteer (全干货)
- 浅谈38K红外发射接受编码(非常好)
- html账号输入框整体透明,HTML在透明输入框里添加图标的实现代码
- NSDate-日期类nbsp;OC——第七天(1)
- solr的安装和配置
- html飞机动画,基于纯CSS3纸飞机炫酷动画特效
- How Big Data Can Help Save the World
- PMP到底难不难考?