前端:

 <div class="form-group"><label>验证码</label><div class="verify"><input class="form-control" style="width: 240px; display: inline-block;" name="check" type="text" placeholder="请输入验证码" autocomplete="off"><span><img src="../checkCode/showCode" alt="" onclick="changeCheckCode(this)"></span><script type="text/javascript">//图片点击事件function changeCheckCode(img) {img.src="checkCode?"+new Date().getTime();}</script></div></div>

后端代码:

package com.hkd.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;@Controller
@ResponseBody
@RequestMapping("/checkCode")
public class CheckCode {@RequestMapping("/showCode")public void showCode(HttpSession session, HttpServletRequest request, HttpServletResponse response) throws IOException {//服务器通知浏览器不要缓存response.setHeader("pragma", "no-cache");response.setHeader("cache-control", "no-cache");response.setHeader("expires", "0");//在内存中创建一个长80,宽30的图片,默认黑色背景//参数一:长//参数二:宽//参数三:颜色int width = 80;int height = 30;BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);//获取画笔Graphics g = image.getGraphics();//设置画笔颜色为灰色g.setColor(Color.GRAY);//填充图片g.fillRect(0, 0, width, height);//产生4个随机验证码,12EyString checkCode = getCheckCode();//将验证码放入HttpSession中session.setAttribute("CHECKCODE_SERVER", checkCode);//设置画笔颜色为黄色g.setColor(Color.YELLOW);//设置字体的小大g.setFont(new Font("黑体", Font.BOLD, 24));//向图片上写入验证码g.drawString(checkCode, 15, 25);//将内存中的图片输出到浏览器//参数一:图片对象//参数二:图片的格式,如PNG,JPG,GIF//参数三:图片输出到哪里去ImageIO.write(image, "PNG", response.getOutputStream());}private String getCheckCode() {String base = "0123456789ABCDEFGabcdefg";int size = base.length();Random r = new Random();StringBuffer sb = new StringBuffer();for (int i = 1; i <= 4; i++) {//产生0到size-1的随机值int index = r.nextInt(size);//在base字符串中获取下标为index的字符char c = base.charAt(index);//将c放入到StringBuffer中去sb.append(c);}return sb.toString();}
}

后端校验验证码代码:

// 校验验证码String checkcode_server = (String) session.getAttribute("CHECKCODE_SERVER");session.removeAttribute("CHECKCODE_SERVER"); // 为了保证验证码只能使用一次if (checkcode_server == null || !checkcode_server.equalsIgnoreCase(check)) {map.put("code", 1000);map.put("msg", "验证码错误,请刷新验证码后重新输入");return map;}
// 校验验证码结束

效果:

使用的是SSM-plus框架,基本上是通用的代码。

Html + Java登录验证码实现代码相关推荐

  1. java 登录验证码_java jsp实现登录验证码

    java jsp实现登录验证码 工作中使用的java jsp实现的登录验证码.代码记录如下: 1.登录主页面(login.jsp) pageEncoding="UTF-8"%> ...

  2. java 登录验证码_java实现登录验证码

    本文实例为大家分享了java实现登录验证码的具体代码,供大家参考,具体内容如下 1.ValidateCode.java import java.awt.Color; import java.awt.F ...

  3. java语音验证码_Java代码示例_Java语音验证接口 | 微米-中国领先的短信彩信接口平台服务商...

    Java语音验证接口代码示例 请求 import java.util.HashMap; import java.util.Map; public class IvrDemo { /** * 语音验证接 ...

  4. python123登录网页版_Python模拟登录验证码(代码简单)

    废话不多说了,直接给大家贴代码了. import urllib import urllib2 import cookielib def getImg(picurl): ''' request for ...

  5. java登录注册升级代码_【升级版】Java 登录,注册,传数据到后台小案例

    1.项目结构 2.项目所用文件 1)jar包  ojdbc5.jar     2)js     jquery-2.1.0.js , jquery.validate.min.js       3)css ...

  6. java生成验证码实例_Java生成验证码功能实例代码

    页面上输入验证码是比较常见的一个功能,实现起来也很简单.给大家写一个简单的生成验证码的示例程序,需要的朋友可以借鉴一下. 闲话少续,直接上代码.代码中的注释很详细. package com.SM_te ...

  7. java验证码的代码_java实用验证码的实现代码

    本文为大家分享了java实用验证码的实现代码,供大家参考,具体内容如下 1.ValidCode package validImg; import java.awt.Color; import java ...

  8. java 3d验证码_Java实现验证码具体代码(图片、汉字)

    本文为大家分享两个实例,相信大家一定会喜欢. 实例1:随机生成验证码图片并将之输出为一个png文件 效果图: import java.awt.Color; import java.awt.Font; ...

  9. java生成验证码图片中仅有线条_Java实现验证码具体代码(图片、汉字)

    本文为大家分享两个实例,相信大家一定会喜欢. 实例1:随机生成验证码图片并将之输出为一个png文件 效果图: import java.awt.Color; import java.awt.Font; ...

  10. java登录的 验证码_java登录验证码

    一.创建web项目 二.生成验证码 创建VcodeObject.java,存储验证码与图片 package com.demo.vcode; import java.io.InputStream; pu ...

最新文章

  1. STM32cube HAL库 UART串口中断方式收发任意长度 调试笔记
  2. 在Metro App中显示Toast notification
  3. ISA2006标准版无人值守安装
  4. oracle之 Got minus one from a read call 与 ORA-27154: post/wait create failed
  5. DOM-10 面向对象开发Todolist
  6. html未点击背景 点击背景,在AngularJs中点击状态如何改变背景色
  7. IDEA 配置Tomcat
  8. SQL - 18.触发器
  9. 二年级上册计算题_二年级上册数学计算题
  10. c语言更正错误,c语言出错invalid operands to binary %
  11. 服务器系统详细安装步骤
  12. 拼多多卖家必知:店铺评分和评价那点事
  13. 不懂技术怎么让服务器更安全,几个插件让你的服务器更安全(防攻击防注入)
  14. 7.camera驱动06-自己实现v4l2驱动-虚拟摄像头
  15. 二叉树前序后序中序互推总结
  16. LeetCode/LintCode 题解丨一周爆刷双指针:最小范围
  17. 形态学操作之腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽和黑帽
  18. Django REST Framework教程(4): 玩转序列化器(Serializer)
  19. 时空大数据可视化专栏
  20. 如约而至 | 云和恩墨大讲堂电子期刊第五期

热门文章

  1. mysql adodb_MySql AdoDB基本的函数
  2. 2019长江课堂作业答案_2019版长江课堂作业答案语文四年级
  3. cocos Builder的一点理解
  4. java小程序(万年历)
  5. 数码大师2013破解补丁|数码大师2013白金版注册破解补丁下载(附数码大师2013白金版注册码)
  6. CRMEB/V4.4标准版打通版商城源码小程序公众号H5+App商城源码
  7. 5y计算机应用2010综合测评答案,计算机二级习题答案
  8. 关于VC6和VC9的区别
  9. android实现应用商店开发,基于Android平台的应用商店客户端的设计与实现
  10. 计算机创业计划书800字大全,大学生创业计划书800字左右.docx