没有 看到验证码机制 的时候,个人想法是 请求后台生成数据用数据库保存 然后前台拿到数据匹配如果正确则可以登录....
其实事实上接近了...
今天看到一个朋友写的验证登录出来给大家分享下 。
下面我把前后台代码贴出来。
一 、首先web端
用 /image?new date 去后台请求 【/image 】 serverlet。
二、serverlet
serverlet 中 用随机数生成 4个随机数 用 swing 的Graphics 把 4个数画到 图片上 。返回给前台 同时 将4个随机数写入session。
部分代码如下
HttpSession session = req.getSession();
Graphics g = image.getGraphics(); //画图 使用的类 画图 就不写了 网上有很多 ...
String randnum = getRandomCode();//自定义 获取4个随机数
g.drawString(randnum , 13 * i + 6, 16);
session.setAttribute("VerifyCode" randnum );
ImageIO.write(image, "JPEG", res.getOutputStream());//返回web 图片。
三 、登录
如此登录的时候 只要从session 中取出 比较下就行了
web 传一个str.eq(session.getAttibute("VerifyCode"));