通过虚拟图片绘制验证码,创建一个类继承HttpServlet,在doGet中实现:

package cn.edu.svtcc.servlet;import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;@WebServlet("/generateImg")
public class GenerateCodImgServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1.生成一张图片BufferedImage image=new BufferedImage(201,50,BufferedImage.TYPE_INT_RGB);Graphics g=image.getGraphics();//产生文字String chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";String code="";for (int i=0;i<6;i++){int pos=(int)(Math.random()*chars.length());char ch=chars.charAt(pos);code=code+ch;}//在Session中存储codereq.getSession().setAttribute("code",code);//绘制文字g.setColor(Color.WHITE);g.setFont(new Font("宋体",Font.ITALIC|Font.BOLD,38));g.drawString(code,35,40);//绘制干扰点for (int i=0;i<=100;i++){int x=(int)(Math.random()*201);int y=(int)(Math.random()*50);g.drawOval(x,y,1,1);}g.dispose();//2.将图片发送给浏览器//2.1将图片转换为二进制ByteArrayOutputStream bos=new ByteArrayOutputStream();ImageIO.write(image,"JPEG",bos);byte[] buf=bos.toByteArray();//2.2发送给浏览器resp.getOutputStream().write(buf);}}
JavaScript板块,通过使用src="${pageContext.servletContext.contextPath}/generateImg"的方式展示在浏览器当中:
<div class="form-group clearfix"><div class="col-md-8 col-xs-8" style="padding: 0px;"><input placeholder="请输入验证码" type="text" class="form-control" name="code"  style="border-top-right-radius: 0;border-bottom-right-radius: 0"></div><div class="col-md-4 col-xs-4" style="padding: 3px;border: 1px solid #4E8CC0;border-left: none;background: linear-gradient(to right,#e2e2e2,#ffffff)"><a href="${pageContext.servletContext.contextPath}/login"> <img id="captchaImg" name="captchaImg" onclick="$('#captchaImg').attr('src','/web/aptcha?7d42f96539b14a2598a4a6ad610c655f&amp;img.jpg')" style="width:108px;height:30px;padding:0px;margin:0px;" src="${pageContext.servletContext.contextPath}/generateImg"></a></div></div>

最终结果:

点击链接还有更多相关技术:使用javaScript,javaWeb技术实现二手车展系统的后端开发-Java文档类资源-CSDN下载

该贴为此相关技术之一哟!

javaWeb随机生成网页验证码图片相关推荐

  1. 用Python生成随机的中文验证码图片

    大家都在 Python论坛里讨论.交流,你还在等什么!赶快加入! 在登录很多网站的时候,他们已经不在使用简单的英文和数字的验证码,为了防止恶心注册和群发软件的侵袭,现在都开始使用中文的验证码了. 今天 ...

  2. ASP生成BMP验证码图片

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% '''''''''''''''''''''''''' ...

  3. 随机生成6位图片验证码

    1. [代码][C#]代码  /// <summary>     /// PicHandler1 的摘要说明     /// </summary>     public cla ...

  4. PIL模块与随机生成中文验证码

    今天我们要学习的内容是如何利用Python生成一个随机的中文验证码,并将图片保存为.jpeg格式. 在这之前,你首先得了解Python中的PIL库.PIL是Python Imaging Library ...

  5. 【JavaWeb】实现网页验证码

    导读:常用的验证码有文本+数字,或者是算式验证码.可以自己编写,来生成验证码.亦或是使用第三方库,来生成验证码. 字母数字验证码 实现形如下图的验证码: 编写一个验证码生成类,首先写一个产生随机字符的 ...

  6. python用*号输出字母c的图案_第1.6题:使用Python生成字母验证码图片

    题目来自:Python 练习册.题目1.6:使用 Python 生成类似于下图中的字母验证码图片 查看更多于本人博客:李飞阳 参考代码 我们用随机颜色填充背景,再画上文字,最后对图像进行模糊,得到验证 ...

  7. python随机生成四位验证码的代码_Python random随机生成6位验证码示例代码

    随机生成6位验证码代码 # -*- coding: utf-8 -*- import random def generate_verification_code(): ''' randomly gen ...

  8. 前端怎样获取后端生成的验证码图片,并且点击图片的时候改变验证码

    直接放在<img src="文件名"/> 就可以了,不用去调接口之类的 点击的时候改变验证码图片: 改一下src属性,url?一个随机数(防止缓存) <a hre ...

  9. javaweb学习总结(九):通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl.r ...

  10. javaweb(九)—— 通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl.r ...

最新文章

  1. 域中计算机设定重启,域中添加计算机设定的步骤
  2. Vbox在Linux 5上安装Oracle 11gR2 RAC
  3. stm32硬件消抖_在 STM32 上使用 C++ 指南
  4. BZOJ3916 [Baltic2014]friends
  5. python测试开发django-8.windows系统安装mysql8教程
  6. liferay jsp如何取PorletSession的值
  7. c语言exit_C语言实现2048
  8. antd的table进行列筛选时,更新dataSource,为什么table显示暂无数据?
  9. python中字符串格式化的形式_Python中format函数字符串格式化入门
  10. c55x汇编语言,TMS320C55x汇编语言编程A.ppt
  11. Apt 命令解说(apt-get update、apt-cache search package、apt-get install package、apt-get remove )
  12. 前端协商缓存强缓存如何使用_强制缓存(200)和协商缓存(304)
  13. Excel中度分秒格式(dd°mm′ss″)与十进制度(°)格式互转,角度与弧度互转
  14. word表格转图片线条不会缺失方法
  15. js 获取到number的length
  16. 中国水煤浆行业“十四五”规划与运营模式分析报告2022~2028年
  17. Qt学习之安装过程中各种问题的解决
  18. 注册表改win 7更新服务器,WIN7安装卡死在更新注册表设置真正解决办法
  19. 唯美MACD-完全版
  20. esp32 spi 驱动 oled 屏显示来自 PC 的画面

热门文章

  1. 怎么才可以使用 IPX 协议???
  2. php把字体调大,phpDesigner 8调整字体大小的方法。
  3. PMP 考点 第五章 项目范围管理
  4. 中了磁碟机病毒,惨啊!!!
  5. lenovo G480 安装无线驱动 linux
  6. LinkedList源码解析
  7. 计算机pc610台湾研华,研华科技工业电脑各尺寸上架式机箱型号介绍
  8. c++ 11/14新特性
  9. vue结合vue-amap调用高德地图行政区划分
  10. iphonex屏幕尺寸html,三分钟弄懂iPhone X 设计尺寸和适配