Java随机生成图片与HTML表单中的验证码实现

2018-05-14  本文已影响173人  codingXiaxw

Java随机生成图片

用Java语言生成一个带有字符串文本的图片总结来说只需要如下四步:

代码如下:

//第一、二步,传入参数为缓冲区宽、高、保存图片类型
BufferedImage image=new BufferedImage(width1,height1,BufferedImage.TYPE_INT_RGB);

//第三步,得到绘制环境(需要用到Graphics类)
Graphics paint=image.getGraphics();
paint.setColor(Color.WHITE);//设置画笔颜色为白色
paint.fillRect(start,end,width2,height2);//绘制矩形并填充,将图片缓冲区的(start,end)坐标作为绘制图片的左上角坐标,绘制图片宽为width2、高为height2
paint.setColor(Color.RED);//设置画笔颜色为红色
paint.drawString(str,x,y);//设置需要绘制在图片上的文本,参数为字符串、字符串所在的x坐标和y坐标

//第四步,将图片保存起来(需要用到ImageIO类)
ImageIO.write(image,"JPEG",out);//参数为图片缓冲区、图片类型、输出流  

通过以上代码便可实现用java语言生成一个简易的带有字符串文本的图片,具体实现如下,首先在IDEA中创建VerifyCode.java类:

image
有错误,请将g.drawStrig(sb.toString(),width/4,height-5);改为g.drawString(str,i*width/4,height-5);
image
image

通过代码VerifyCode vc=new VerifyCode();创建VerifyCode对象后就可以调用上述所有方法便可以实现随机验证码的图片了。

在HTML表单中实现验证码

借用上篇Java Web学习笔记之session入门中的保存用户登录信息案例中的代码,新增:

代码如下图:

<div align="center">VerifyServlet.java</div>

image

<div align="center">LoginServlet.java</div>

image

<div align="center">login.jsp(用到了javascript语法来更换验证码)</div>

image
10月8日更正:途中的js代码有错误,将"ducument"改为"document"。

通过如上代码便可实现HTML中的验证码效果。

2018.3.19更

欢迎加入我的Java交流1群:659957958。群里目前已有1800人,每天都非常活跃,但为了筛选掉那些不怀好意的朋友进来搞破坏,所以目前入群方式已改成了付费方式,你只需要支付9块钱,即可获取到群文件中的所有干货以及群里面各位前辈们的疑惑解答;为了鼓励良好风气的发展,让每个新人提出的问题都得到解决,所以我将得到的入群收费收入都以红包的形式发放到那些主动给新手们解决疑惑的朋友手中。在这里,我们除了谈技术,还谈生活、谈理想;在这里,我们为你的学习方向指明方向,为你以后的求职道路提供指路明灯;在这里,我们把所有好用的干货都与你分享。还在等什么,快加入我们吧!

2018.4.21更:如果群1已满或者无法加入,请加Java学习交流2群:305335626 。群2作为群1的附属群,除了日常的技术交流、资料分享、学习方向指明外,还会在每年互联网的秋春招时节在群内发布大量的互联网内推方式,话不多说,快上车吧!


联系

If you have some questions after you see this article,you can tell your doubts in the comments area or you can find some info by clicking these links.

上一篇 下一篇

猜你喜欢

热点阅读