javaWeb随机生成网页验证码图片
通过虚拟图片绘制验证码,创建一个类继承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&img.jpg')" style="width:108px;height:30px;padding:0px;margin:0px;" src="${pageContext.servletContext.contextPath}/generateImg"></a></div></div>
最终结果:
点击链接还有更多相关技术:使用javaScript,javaWeb技术实现二手车展系统的后端开发-Java文档类资源-CSDN下载
该贴为此相关技术之一哟!
javaWeb随机生成网页验证码图片相关推荐
- 用Python生成随机的中文验证码图片
大家都在 Python论坛里讨论.交流,你还在等什么!赶快加入! 在登录很多网站的时候,他们已经不在使用简单的英文和数字的验证码,为了防止恶心注册和群发软件的侵袭,现在都开始使用中文的验证码了. 今天 ...
- ASP生成BMP验证码图片
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% '''''''''''''''''''''''''' ...
- 随机生成6位图片验证码
1. [代码][C#]代码 /// <summary> /// PicHandler1 的摘要说明 /// </summary> public cla ...
- PIL模块与随机生成中文验证码
今天我们要学习的内容是如何利用Python生成一个随机的中文验证码,并将图片保存为.jpeg格式. 在这之前,你首先得了解Python中的PIL库.PIL是Python Imaging Library ...
- 【JavaWeb】实现网页验证码
导读:常用的验证码有文本+数字,或者是算式验证码.可以自己编写,来生成验证码.亦或是使用第三方库,来生成验证码. 字母数字验证码 实现形如下图的验证码: 编写一个验证码生成类,首先写一个产生随机字符的 ...
- python用*号输出字母c的图案_第1.6题:使用Python生成字母验证码图片
题目来自:Python 练习册.题目1.6:使用 Python 生成类似于下图中的字母验证码图片 查看更多于本人博客:李飞阳 参考代码 我们用随机颜色填充背景,再画上文字,最后对图像进行模糊,得到验证 ...
- python随机生成四位验证码的代码_Python random随机生成6位验证码示例代码
随机生成6位验证码代码 # -*- coding: utf-8 -*- import random def generate_verification_code(): ''' randomly gen ...
- 前端怎样获取后端生成的验证码图片,并且点击图片的时候改变验证码
直接放在<img src="文件名"/> 就可以了,不用去调接口之类的 点击的时候改变验证码图片: 改一下src属性,url?一个随机数(防止缓存) <a hre ...
- javaweb学习总结(九):通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl.r ...
- javaweb(九)—— 通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl.r ...
最新文章
- 域中计算机设定重启,域中添加计算机设定的步骤
- Vbox在Linux 5上安装Oracle 11gR2 RAC
- stm32硬件消抖_在 STM32 上使用 C++ 指南
- BZOJ3916 [Baltic2014]friends
- python测试开发django-8.windows系统安装mysql8教程
- liferay jsp如何取PorletSession的值
- c语言exit_C语言实现2048
- antd的table进行列筛选时,更新dataSource,为什么table显示暂无数据?
- python中字符串格式化的形式_Python中format函数字符串格式化入门
- c55x汇编语言,TMS320C55x汇编语言编程A.ppt
- Apt 命令解说(apt-get update、apt-cache search package、apt-get install package、apt-get remove )
- 前端协商缓存强缓存如何使用_强制缓存(200)和协商缓存(304)
- Excel中度分秒格式(dd°mm′ss″)与十进制度(°)格式互转,角度与弧度互转
- word表格转图片线条不会缺失方法
- js 获取到number的length
- 中国水煤浆行业“十四五”规划与运营模式分析报告2022~2028年
- Qt学习之安装过程中各种问题的解决
- 注册表改win 7更新服务器,WIN7安装卡死在更新注册表设置真正解决办法
- 唯美MACD-完全版
- esp32 spi 驱动 oled 屏显示来自 PC 的画面