如何用java来生成后台验证码

  介绍

这篇文章给大家分享的是有关如何用java来生成后台验证码的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

我们先来看下效果:

如何用java来生成后台验证码

一、适用需求

后台生成验证码,用于登陆验证。

二,实现流程

1,视图层思路

(1)输入用于输入验证码,一个img用于展示验证码

(2)校验输入的验证码是否合格,双击img刷新验证码,绑定onblue失去焦点事件(鼠标失去焦点时触发的事件)

(3) onblue事件中做校验,

(4) img中的src属性值为后台生成验证码的方法请求路径(即requestMapping的路径),当再点击验证码的时候,再动态设置src属性即可(原访问地址+随机时间戳,防止同一路径浏览器不另做访问的问题)

注意:后台直接返回图片,不是验证码的字符!若返回字符,则验证码就失去了意义(前台很容易就可以获取验证码字符,进行多次恶意访问了)(这点考虑了系统安全性)

2,后端思路
利用BufferedImage类创建一张图片,再用Graphics2D对图片进行绘制(生成随机字符,添加干扰线)即可,注意:生成的验证码字符串要放到会话中,用于接下来登陆的验证码验证(当然也是后台)。

前端代码如下:

& lt; td类=皌ds"在验证码:& lt;/td>   & lt; td>   & lt;输入类型=皌ext"name=皏alistr">包cn.tedu.web;      进口cn.tedu.util.VerifyCode;      进口javax.servlet.ServletException;   进口javax.servlet.http.HttpServlet;   进口javax.servlet.http.HttpServletRequest;   进口javax.servlet.http.HttpServletResponse;   进口javax.servlet.http.HttpSession;   进口java.io.IOException;/* *   *获取验证码   */公开课ValiImgServlet扩展HttpServlet {   保护无效doPost (HttpServletRequest请求,HttpServletResponse响应)抛出ServletException IOException {//禁止浏览器缓存验证码   response.setDateHeader (“Expires", 1);   response.setHeader (“Cache-Control",“no-cache");   response.setHeader (“Pragma",“no-cache");//生成验证码   VerifyCode vc=new VerifyCode ();//输出验证码   vc.drawImage (response.getOutputStream ());//获取验证码的值,存储到会话中   字符串valistr=vc.getCode ();   HttpSession会话=request.getSession ();   session.setAttribute (“valistr" valistr);//打印到控制台   System.out.println (valistr);   }      保护无效doGet (HttpServletRequest请求,HttpServletResponse响应)抛出ServletException IOException {   doPost(请求、响应);   }   }
如何用java来生成后台验证码