实现网站验证码切换功能

news/2024/5/9 22:19:38/文章来源:https://blog.csdn.net/weixin_30664615/article/details/98824018

 实现网站验证码切换功能

一、样例

 样例1、

样例2、

 

 

 

 

 二、实现原理

 

 

三、实现代码

com.fry.servlet.VerifyCodeServlet

 1 package com.fry.servlet;
 2 
 3 import javax.imageio.ImageIO;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.annotation.WebServlet;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 import java.awt.*;
10 import java.awt.image.BufferedImage;
11 import java.io.IOException;
12 import java.util.Random;
13 
14 /**
15  * Created by fry on 2017/5/31.
16  */
17 @WebServlet(name = "VerifyCodeServlet", urlPatterns = "/code")
18 public class VerifyCodeServlet extends HttpServlet {
19     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
20 
21     }
22 
23     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
24         int width = 100;
25         int height = 30;
26 
27         String data = "abcdefghijklmnopqrst01234567890";
28 
29         Random random = new Random();
30         //1、用BufferedImage生成一张图片,最后一个参数是图片类型
31         BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
32 
33         //3、调用image的画图对象
34         Graphics graphics = image.getGraphics();
35         graphics.setColor(Color.gray);
36         //左上角和右下角
37         graphics.fillRect(0, 0, width, height);
38 
39 
40         graphics.setColor(Color.black);
41         for (int i = 0; i < 4; i++) {
42             //4、随机生成字符串,取到随机的位置,就取到了随机的字符串
43             int position = random.nextInt(data.length());
44             String randomStr = data.substring(position, position + 1);//分割字符串
45             graphics.drawString(randomStr, width / 5 * (i + 1), 15);//画字符串
46 
47         }
48 
49         //2、ImageIO的write()方法可以将图片转化为OutputStream类型
50         /**
51          * 第二个参数是要格式化的类型
52          * 最后一个参数是将格式化的图片写到response的输出流中
53          */
54         ImageIO.write(image, "jpg", response.getOutputStream());
55 
56 
57     }
58 }

 

verifyCode.html

 要让按钮一直能点

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 
 9 </body>
10 <center>
11     <h2>切换验证码</h2>
12 <!--js代码-->
13 <script>
14     function changeImageCode() {
15         document.getElementById('btn').isDisabled=true;
16         <!-- 为了使每次的验证码都不一样,防止页面缓存,所以加上时间,ts是get方式请求传过去的参数,每次的请求都不一样,所以页面没法缓存-->
17         document.getElementById('identity').src='code?ts='+new Date().getTime();
18     }
19 </script>
20     <!--从servlet的映射是code的servlet处获取图片-->
21     <image  src="code"  id="identity" onload="btn.disable=false;" style="cursor:pointer; vertical-align:middle"></image>
22     <input type="button" value="看不清,更换验证码" onclick="changeImageCode()" id="btn"  style="vertical-align:middle">
23 
24 </center>
25 </html>

 

 

转载于:https://www.cnblogs.com/Renyi-Fan/p/7761824.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_820676.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始编写自己的C#框架(25)——网站部署

导航 1、关掉访问保护 2、发布网站 3、复制网站到服务器 4、添加新网站 5、设置网站访问权限 6、设置文件夹访问权限 7、控制可更新文件夹执行权限 8、设置“应用程序池”.net版本与模式 9、附加数据库 10、添加数据库访问用户 11、设置数据库链接 12、部署注意事项 对于网站的…

linux系统怎么重启网络连接wifi密码,怎么查看linux连接wifi的密码?_网站服务器运行维护,linux,wifi...

如何使用外部硬盘安装linux系统&#xff1f;_网站服务器运行维护使用外部硬盘安装linux系统的方法&#xff1a;首先将格式化的U盘和固态硬盘连接到电脑上并按F9&#xff1b;然后从菜单选择U盘启动并按enter&#xff1b;接着按linux minit程序安装系统并选择中文&#xff1b;最后…

织梦网站调用变量失败_浙江栢塑科技解析织梦被挂马被黑解决流程

织梦被黑恶意挂马并不奇怪&#xff0c;本身织梦程序案例漏洞过多&#xff0c;如不做好安全更新或备份&#xff0c;造成数据丢失并影响排名。 一个SEOVIP同学遇到织梦的问题&#xff0c;接下来把处理的流程记录下来&#xff0c;帮助大家解决问题。 1&#xff0c;分析网站源码&am…

3格式是什么意思_推荐一个万能格式转换网站

老Y在以前的文章中推荐过一个专注格式转换的网站→推荐一个万能的在线格式转换网站&#xff0c;功能非常的强大。也推荐过一个PC端的转换神器→办公利器&#xff08;PDF工具|格式转换|图片编辑|文字识别|图片处理…&#xff09;今天老Y再推荐一个国内的功能同样强大的格式转换网…

一些常用的网站——Mark

2019独角兽企业重金招聘Python工程师标准>>> CDN加速&#xff1a; 又拍云&#xff1a;http://www.bootcdn.cn/ 百度&#xff1a;http://cdn.code.baidu.com/ 新浪&#xff1a;http://lib.sinaapp.com/ 七牛云存储&#xff1a;https://www.staticfile.org/ 转载于:ht…

网站备案那些事----云里雾里知多少?

前言&#xff1a;备案流程几大步 文章目录&#xff1a; 1、购买域名 1.1、国内外几个域名提供商推荐 1.2、域名购买时需要提交的信息 1.3、域名购买后需要提交哪些材料 2、确定网站文件存储空间是购买还是自备 2.1、网站文件存储空间购买的话该如何备案 2.2、网站文件存储空间为…

linux网站5秒盾,宝塔面板建站后接入CF自动开启5秒盾证码脚本

有大神分享了CF自动开启5秒盾 验证码脚本&#xff0c;原理就是通过检测系统负载(cpu或load)自动开启cloudflare UAM和challenge质询(验证码)&#xff01;&#xff01;这里分享下宝塔面板下如何用起来&#xff0c;使用的前提是你的域名需要接入cloudflare。1、简介项目&#xf…

网站部署到linux 在进行压测,在Linux CentOS上搭建Jmeter压测环境

本文的主要内容是介绍如何在Linux CentOS 服务器上面搭建Jmeter的压测环境整个详细的流程&#xff0c;来满足我们日常工作中对于压力测试环境搭建、压力测试执行过程的需求。一、首先我们要准备四个东西&#xff0c;在搭建环境的时候需要使用到1、Xshell、puTTy等终端连接工具(…

几个可以免费下载知网文档,和查重的网站

前一段时间小七分享过几个免费下载知网&#xff0c;万方等一下写论文下载文献的方法&#xff0c;当时有小伙伴在后台询问有没有论文免费查重的方法&#xff0c;其实小七手里面有几个可以免费查看论文权重的软件&#xff0c;但是小七却没有分享&#xff0c;因为这些软件都是个人…

两个免费的文献翻译网站,支持多种专业翻译,多种语言!

小七&#xff0c;小七&#xff0c;有没有文档翻译软件&#xff0c;免费不花钱的那种 简单&#xff0c;安排 搜狗翻译&#xff1a;https://fanyi.sogou.com/ 搜狗翻译&#xff0c;不用注册账号&#xff0c;直接上传文档翻译即可。支持文字&#xff0c;图片&#xff0c;10兆以…

永进课堂-三个网站

相遇是缘&#xff01;❤️❤️永进舫❤️❤️ ❤️❤️❤️青龙中学❤️❤️ ❤️❤️❤️❤️永进课堂❤️❤️

查看兼容性情况的网站

2019独角兽企业重金招聘Python工程师标准>>> http://caniuse.com/ 转载于:https://my.oschina.net/daladida/blog/1547789

python视频网站项目_Python开发视频哪个好

3、程序的可移植性&#xff1a;你编写的代码可以放到几个平台上去运行&#xff0c;比如windows,linux,unix。 4、很多标准库和第三方库&#xff1a;等你了解python标准库的时候&#xff0c;你就会觉的它的标准库太多了&#xff0c;而且功能和强大&#xff0c;从字符处理到网络处…

一次网站性能排查实录

接到一个求助电话&#xff0c;说是有个阿里云上的服务器&#xff0c;有性能瓶颈&#xff0c;但又没有什么具体的数据&#xff0c;只是说偶尔客户端有少数连接不上&#xff0c;或者连接会突然中断。我的天&#xff0c;最怕这种状况了&#xff0c;还得自己去找问题表现是什么&…

如何生成kml文件_帝国CMS如何自动生成sitemap.xml网站地图文件

登录网站的后台http://你的域名/e/admin/进入后台栏目 》增加自定义页面 》选择直接页面&#xff0c;页面名称为&#xff1a;网站地图&#xff0c;文件名修改为 ../../sitemap.xml<?xml version"1.0" encoding"UTF-8"?>?>[!--news.url--]daily…

《梦公园》网站策划设计

呈现奢华视觉体验&#xff0c;《梦公园》网站策划设计 公元2005年底 北京VNOISE 为 梦公园 开始筹划网站&#xff0c;打造符合梦公园公司独特气质的网络形象策划和网站设计。 项目地址&#xff1a;http://www.dreamgarden.com.cn北京VNoise视觉互动公司&#xff1a;http://www.…

基于Python-Flask实现的网站例子

概述 使用Flask写的体育网站 包括&#xff08;注册 论坛 文章评论 组建战队 后台管理&#xff09;等功能 示例地址文中有写 萌新 请多指教详细 代码下载&#xff1a;http://www.demodashi.com/demo/12380.html 项目示例地址: 网站演示 一、环境搭建 1. 安装配置python3.6 示例网…

北美程序员实用网站

2019独角兽企业重金招聘Python工程师标准>>> 刷题类 https://leetcode.comhttps://www.hackerrank.com 面试工具/代码协同 https://coderpad.io 在线预约 https://www.zoho.com/calendar 问答社区 https://piazza.com 培训机构 https://www.bittiger.io 免费课程 h…

《大型网站技术架构:核心原理与案例分析》读书笔记 - 第2篇 架构

第2篇 架构 4 瞬时响应&#xff1a;网站的高性能架构 34 4.1 网站性能测试 35 性能测试是性能优化的前提和基础&#xff0c;也是性能优化结果的检查和度量标准。 4.1.1 不同视角下的网站性能 35 用户&#xff1a;直观感受到的快慢开发&#xff1a;应用程序本身运维&#xff1a;…

ASP.NET : 如何为网站添加自定义的文件类型

我们知道&#xff0c;在ASP.NET网站中&#xff0c;默认页面的扩展名是aspx.要想实现在网站中提供特殊的文件类型&#xff0c;例如Test之类的,就可以考虑通过HttpHandler来实现。下面是一个小的例子 1. HttpHandlerusing System; using System.Collections.Generic; using Syste…