后端部分:

一、导入依赖

<!-- 验证码 --><dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version></dependency>

二、创建控制器

KaptchaController2
展示后台生成的验证码

package com.exam.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;@Controller
public class KaptchaController2 {@ResponseBody@RequestMapping("/getVerify")public String getVerifyCode(HttpServletRequest request){String verifyCode = (String)request.getSession().getAttribute("verifyCode");System.out.println("---------------------"+verifyCode);return verifyCode;}
}

验证码生成方法

package com.exam.controller;import com.google.code.kaptcha.impl.DefaultKaptcha;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;@RestController
public class KaptchaController {@Autowiredprivate DefaultKaptcha defaultKaptcha;@GetMapping("/createImageCode")public void defaultKaptcha(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {byte[] captchaOutputStream = null;ByteArrayOutputStream imgOutputStream = new ByteArrayOutputStream();try {//生产验证码字符串并保存到session中String verifyCode = defaultKaptcha.createText();httpServletRequest.getSession().setAttribute("verifyCode", verifyCode);BufferedImage challenge = defaultKaptcha.createImage(verifyCode);ImageIO.write(challenge, "jpg", imgOutputStream);} catch (IllegalArgumentException e) {httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND);return;}captchaOutputStream = imgOutputStream.toByteArray();httpServletResponse.setHeader("Cache-Control", "no-store");httpServletResponse.setHeader("Pragma", "no-cache");httpServletResponse.setDateHeader("Expires", 0);httpServletResponse.setContentType("image/jpeg");ServletOutputStream responseOutputStream = httpServletResponse.getOutputStream();responseOutputStream.write(captchaOutputStream);responseOutputStream.flush();responseOutputStream.close();}}

三、创建config配置文件

package com.exam.config;import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;import java.util.Properties;@Component
public class KaptchaConfig {@Beanpublic DefaultKaptcha getDefaultKaptcha(){DefaultKaptcha defaultKaptcha = new DefaultKaptcha();Properties properties = new Properties();properties.put("kaptcha.border", "no");properties.put("kaptcha.textproducer.font.color", "black");properties.put("kaptcha.image.width", "150");properties.put("kaptcha.image.height", "40");properties.put("kaptcha.textproducer.font.size", "30");properties.put("kaptcha.session.key", "verifyCode");properties.put("kaptcha.textproducer.char.space", "5");Config config = new Config(properties);defaultKaptcha.setConfig(config);return defaultKaptcha;}
}

前端部分:

一、form表单

<el-form :label-position="labelPosition" label-width="80px" :model="formLabelAlign"><el-form-item label="用户名" ><el-input v-model.number="formLabelAlign.username" placeholder="请输入用户名"></el-input></el-form-item><el-form-item label="密码" required><el-input v-model="formLabelAlign.password" placeholder="请输入密码" type='password'></el-input></el-form-item><el-form-item label="验证码" required><el-input v-model="formLabelAlign.verifyCode" auto-complete="off" class="el-col-width"></el-input></el-form-item><el-form-item required><img id="img" alt="验证码" onclick="this.src='/api/createImageCode?d='+new Date()*1" src="/api/createImageCode" /></el-form-item><div class="submit"><el-button type="primary" class="row-login" @click="login()">登录</el-button></div></el-form>

二、js逻辑部分

data() {return {role: 2,labelPosition: 'left',formLabelAlign: {username: '20154084',password: '123456',verifyCode: ''}}},methods: {//用户登录请求后台处理login() {console.log("登录操作执行-------");this.$axios({url: `/api/getVerify`,method: 'get',async: false}).then(res => {if (res.data === this.formLabelAlign.verifyCode) {if (this.formLabelAlign.username === "" || this.formLabelAlign.password === "") {this.$message({showClose: true,type: 'error',message: '用户名或者密码为空'})} else {this.$axios({url: `/api/login`,method: 'post',data: {...this.formLabelAlign}}).then(res => {//下面就可以写自己的方法或者跳转

SpringBoot和Vue验证码相关推荐

  1. 阿里云 部署SpringBoot和Vue项目 亲测可用(第一次部署经验贴)

    阿里云 部署SpringBoot和Vue项目 亲测可用!第一次部署经验贴! 前言:与伙伴一起写了一个项目,但是由于老师要我们部署到服务器上,而我从未有部署过,查看了csdn很多博客,试了好多篇,才成功 ...

  2. 基于Springboot+Mybatisplus+Vue的科研项目管理系统

    基于Springboot+Mybatisplus+Vue的科研项目管理系统 1.1 项目概述 开发语言:Java8 数据库:Mysql5 前端技术:bootstrap 后端框架:Springboot ...

  3. 利用SpringBoot和Vue实现前后端分离(附源码)

    利用SpringBoot和Vue实现前后端分离(附源码) 引言: 本文主要分享了SpringBoot和Vue整合实现前后端分离,实现了简单的增删查改:包括:项目的搭建.后端的实现.前台的实现:(附源码 ...

  4. (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133

    springboot厨到家服务系统 摘  要 在社会快速发展的影响下,餐饮迅速发展,大大增加了餐饮服务信息管理的数量.多样性.质量等等的要求,使餐饮的管理和运营比过去十年更加困难.依照这一现实为基础, ...

  5. 基于javaweb的精品养老院管理系统(java+springboot+mybatis+vue+mysql)

    基于javaweb的精品养老院管理系统(java+springboot+mybatis+vue+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:ecli ...

  6. springboot基于VUE框架的商城综合项目设计与实现毕业设计源码111612

    基于VUE框架的商城综合项目设计与实现 摘  要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,商城综合项目当然也不能排除在外.商城综合项 ...

  7. springboot基于VUE框架的商城综合项目设计与实现毕业设计源码

    基于VUE框架的商城综合项目设计与实现 摘  要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,商城综合项目当然也不能排除在外.商城综合项 ...

  8. Springboot整合kaptcha验证码

    Springboot整合kaptcha验证码 01.通过配置类来配置kaptcha 01-01.添加kaptcha的依赖: <!-- kaptcha验证码 --> <dependen ...

  9. 能挣钱的,开源SpringBoot和Vue的企业级项目,代码很规范!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 简介 SmartAdmin由河南·洛阳 1024创新实验室 ...

最新文章

  1. 信息系统项目管理师为什么不建议自学
  2. 机器学习 测试_测试优先机器学习
  3. linux查看系统版本_Win8系统查看directx版本的操作方法是什么?
  4. PyPA Packaging Python Projects
  5. 初识Firebug 全文 — firebug的使用
  6. 软件测试之软件开发模型
  7. 通过二进制方式安装innobackupex
  8. Linux部署采集小说源码教程,杰奇linux下远程采集,最新思路及方法
  9. 微信开发模式api接口文档简介
  10. 经常使用Code 39条形码,你了解它吗? 今天就来看看什么是Code 39
  11. Wordpress主题制作基础教程
  12. win10怎样设置远程桌面连接到服务器配置,win10设置远程桌面连接
  13. 2016程序员你该爆发洪荒之力了!八招教你成功
  14. Leaving fence domain… found dlm lockspace /sys/kernel/dlm/rgmanager
  15. 深度学习之五:稀疏编码
  16. 30岁是全新的20岁?---《20岁时光不再来》
  17. 计算机工程制图箭头怎么画,AutoCAD制图时怎么画剖视的箭头 AutoCAD箭头画法教程...
  18. JVM总结之垃圾回收详解
  19. leaflet添加marker出现偏移,修正方法-icon
  20. 惠普服务器BIOS密码是多少位

热门文章

  1. Spooling Directory Source 使用
  2. python_分水岭算法
  3. 中国车牌归属地数据库
  4. android调试遇到ADB server didn't ACK以及蛋疼的sjk_daemon进程
  5. LeetCode: 868. Binary Gap
  6. C语言度化为度分秒的方法,一句话转换度:分:秒格式为度.度度度
  7. 一台微型计算机字长为4个字节,若一台计算机的字长为4个字节,则表明该计算机()。...
  8. mysql同城双活以及主从库方案
  9. Prometheus+Grafana (史上最全)
  10. vue 中的 prop