Servlet实现页面验证功能随机生成图片

【java图片验证码】Java 服务端生成图片验证码及验证 Java 服务端生成图片验证码及验证 简介 验证码是防止有人利用机器人自动批量注册、对特定的注册用户用特定程序暴力破解方 式进行不断的登录、灌水。因为验证码是一个混合了数字或符号的图片,人眼看起来都费劲, 机器识别起来就更困难。 分析 登录表单很可能遭到模拟登录的暴力破解攻击,要么轻易获得特定账户的登录信息,要么给服务器增加了大量的负荷。解决的办法,一般就是在登录前给出一个随机的信息(验证码),非法的非 Web 途径登录者会看不到这个验证码,从而让用户安全登录。为防止攻击者破获验证码,需将验证 阅读详情
 
Java代码 复制代码  收藏代码
  1. package com.servlet;   
  2.   
  3. import java.awt.Color;   
  4. import java.awt.Font;   
  5. import java.awt.Graphics;   
  6. import java.awt.image.BufferedImage;   
  7. import java.io.IOException;   
  8. import java.util.Random;   
  9.   
  10. import javax.servlet.ServletException;   
  11. import javax.servlet.http.HttpServlet;   
  12. import javax.servlet.http.HttpServletRequest;   
  13. import javax.servlet.http.HttpServletResponse;   
  14. import javax.imageio.ImageIO;   
  15.   
  16. public class Image extends HttpServlet {   
  17.   
  18.     public void destroy() {   
  19.   
  20.     }   
  21.   
  22.     public void doGet(HttpServletRequest request, HttpServletResponse response)   
  23.             throws ServletException, IOException {   
  24.   
  25.         this.doPost(request, response);   
  26.     }   
  27.   
  28.     public void doPost(HttpServletRequest request, HttpServletResponse response)   
  29.             throws ServletException, IOException {   
  30.   
  31.         // 设置编码格式   
  32.         response.setContentType("image/jpeg");   
  33.   
  34.         // 创建图片的大小   
  35.         int width = 85;   
  36.         int height = 20;   
  37.   
  38.         // 创建一个img对象   
  39.         BufferedImage img = new BufferedImage(width, height,   
  40.                 BufferedImage.TYPE_INT_RGB);   
  41.   
  42.         Random ran = new Random();   
  43.   
  44.         // 得到画笔   
  45.         Graphics g = img.getGraphics();   
  46.         // 设置画笔的样式   
  47.         Color c = g.getColor();   
  48.         Font f = g.getFont();   
  49.   
  50.         g.setColor(Color.pink);// 设置背景色   
  51.         g.fillRect(0, 0, width, height); // 填充背景色   
  52.   
  53.         // 文字的操作   
  54.         StringBuffer sb = new StringBuffer();   
  55.   
  56.         g.setFont(new Font("黑体", Font.BOLD, 16));   
  57.   
  58.         for (int i = 0; i < 4; i++) {   
  59.   
  60.             g.setColor(new Color(ran.nextInt(100), ran.nextInt(100), ran   
  61.                     .nextInt(100)));   
  62.   
  63.             String num = String.valueOf(ran.nextInt(10));   
  64.   
  65.             g.drawString(num, i * 20 + 10, 15);   
  66.   
  67.             sb.append(num);   
  68.         }   
  69.   
  70.         // 恢复默认的画笔   
  71.         g.setColor(c);   
  72.         g.setFont(f);   
  73.   
  74.         // 给服务器保存验证码字符串   
  75.         request.getSession().setAttribute("yan", sb);   
  76.   
  77.         // 缓存清空   
  78.         response.setHeader("Pragma", "no-store"); // 本地机是否产生缓存文件   
  79.         response.setDateHeader("expires", 0); // 生效时间   
  80.         response.setHeader("Pragma", "no-cache"); // 清空   
  81.   
  82.         // 输出图片   
  83.         ImageIO.write(img, "jpeg", response.getOutputStream());   
  84.     }   
  85.   
  86. }  
用KalmanNet搞定非线性状态估计:当卡尔曼滤波遇上神经网络 本文深入探讨了KalmanNet如何将神经网络与卡尔曼滤波结合,以解决非线性状态估计中的模型失配和噪声不确定性问题。通过保留经典滤波框架并用RNN学习卡尔曼增益,该方法在无人机导航、机器人定位等场景中实现了模型驱动与数据驱动的优势互补,提升了估计的鲁棒性和灵活性。 阅读详情

相关推荐

弘玑RPA进阶攻略

01.弘玑RPA产品概要。02.设计器的安装与卸载。03.设计器特性与使用。

长安诗社社长@-梁瀚文- https://github.com/HevnChin https://gitee.com/HevnChin 3647

自己写的超简洁利用Servlet生成随机验证的图片

下午在JAVAEYE逛了一会 手有点痒了 可是一时又不知道写点什么 于是想起来几个月前 有位网友问我的 网站的随机图片的生成的问题 当时没有太在意 因为这个东西没有深接触过 只是知道有这种轻量级的东西 况且网上一GOOGLE会有一大片 出于好奇 俺动手写了一写 写的DEMO级别的 超简单 好了 俺上代码 下面我说一下思路吧 首先是随机图片的生成过程 绘制出一定尺寸的图片,...

爱生活爱JAVA 192

Vision-Language Navigation - Windows环境下编译安装Matterport3D Simulator仿真器(三)

目录1 编译 Matterport3D Simulator 源码1.1 源码下载1.2 编译 1 编译 Matterport3D Simulator 源码   在 Windows 下编译 Matterport3D Simulator 稍微有些不方便,需要对 CMakeLists.txt 进行一些修改,如果有更好的方法欢迎大家评论。 1.1 源码下载   还是直接在 Github 上搜索 Matterport3D Simulator 的 repo,下载源码。如果用 zip 方式,那么直接在下即可。如果使用

weixin_44110393的博客 4846

网页随机生成验证码 + 根据验证情况进行跳转

  效果   思路 这是个tomcat部署的小项目(本地一样用) 每次点击按钮,向Servlet请求一次资源,更新一次img的src   代码(3部分) CheckImage.java public class CheckImage { /* * 【该类用于生成并处理BufferedImage】 * 两个公有方法: * public BufferedImage getImage() 返回验证码图片(流) * public String getText()

丧心病狂Loli控的博客 1983

《玩儿起来吧》MATLAB 实时图像处理系列(一二三四)

大家学了图像处理之后,是不是就想学以致用。而要用于生活中,最好的方式就是和摄像头搭配,实现实时图像处理。今天就给大家分享MATLAB实时图像处理的基础方法,希望能帮你快速入门。

HPC_ZY 1万+

Qwen3-Embedding选型指南:0.6B/4B/8B三版本性能对比与场景匹配建议

本文深入解析阿里开源的Qwen3-Embedding系列模型(0.6B/4B/8B)的性能差异与适用场景,提供从边缘计算到云端部署的实战选型建议。通过实测数据对比响应延迟、内存占用和多语言精度等核心指标,帮助技术团队根据业务需求选择最优模型版本,并分享边缘设备优化与云端成本测算策略。

qsc901234567的博客 893

Struts Servlet简单实现登录随机验证码

为防止暴力登录而采用的随机验证码在很多网站的登录上经常见到,我这里用Struts+Servlet简单实现登录验证码,贴出来与大家一起交流。 原理就是利用在Servlet中产生4个数字与字母随机组合的验证码,存放到request的Session中,当用户加载登录页面的同时,发送一个请求给Servlet产生随机的验证码,并在登录页面以图片的形式展示在用户面前,当用户填完登录信息提交时,由Stru

仰望星空 1129

Linux LT8912b调试记录(MIPI转LVDS/HDMI)

本文记录了在RK3588平台上使用LT8912B芯片实现MIPI转LVDS/HDMI的调试过程。主要包含设备树配置、驱动代码实现及常见问题解决。调试重点包括:1)正确配置1280x800分辨率的LVDS屏幕参数;2)确保I2C总线正常通信;3)解决花屏、图像抖动、黑屏等问题,涉及lane-rate计算、同步信号极性调整及MIPI模式选择。文中提供了详细的寄存器配置代码和故障排查方法,特别强调了I2C通信验证和电压匹配的重要性。通过参数优化和多种模式测试,最终实现了稳定的视频输出转换。

qq_45147279的博客 1089

JSP生成随机证码,并且局部刷新验证码

<br />1.前台jsp<br /><br /><%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><br /><%<br />String path = request.getContextPath();<br />String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"

jing的专栏 2434

企业级 Token 中转架构设计:高并发、多模型、费用监控一次搞定

摘要:本文针对企业级AI开发中的多模型接口混乱、高并发稳定性差及Token费用失控等痛点,提出一套2026年企业级Token中转架构解决方案。该方案采用五层分层设计(接入层、网关层、调度层、服务层、存储层),实现多模型统一接口、智能路由、高并发限流容错及精细化成本监控。核心功能包括:异构模型标准化接入、动态路由策略(场景/成本/负载/容灾)、多级限流熔断机制、全链路Token计费与安全防封体系(指纹清洗、IP池隔离)。通过分层解耦与模块化设计,企业可降低50%成本、提升99%稳定性,并避免封号风险。文章还提

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 149

MIPI D-PHY TX 一致性测试实例解析 Part 01 续

本文为MIPI D-PHY TX一致性测试实例解析part01章节的第二部分

一只豌豆象的博客 6048

使用servlet实现验证码

javaweb中使用servlet实现验证码 package com.test; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.WebServlet; i...

Q854031191的博客 335

华为OD机试新系统真题 【LLM推理批次最大化】

华为OD机试 新系统真题【LLM推理批次最大化】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【LLM推理批次最大化】多语言题解。

qq_45776114的博客 573

Java实现验证码验证功能

Java如何实现验证码验证功能呢?日常生活中,验证码随处可见,他可以在一定程度上保护账号安全,那么他是怎么实现的呢? Java实现验证码验证功能其实非常简单:用到了一个Graphics类在画板上绘制字母,随机选取一定数量的字母随机生成,然后在画板上随机生成几条干扰线。 首先,写一个验证码生成帮助类,用来绘制随机字母: [java] view plain cop

天堂地址不详 2936

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Servlet之 验证码(初级)

Servlet之 验证码(初级) 需求: 使用Servlet向页面响应验证码,并且点击验证码或者"看不清楚,换一张"可以刷新验证码 需求分析: Servlet中需要完成的需求: 验证码的本质:就是一张图片 使用Servlet向页面响应验证码和现实中使用画板绘画一样: 1.设置画布的尺寸:宽度(width),高度(height) 2.有了画布之外还需要画笔 3.设置画笔的颜色,使用RGB颜色,re...

java-xiang 315

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java生成验证码简记

验证码定义 验证码(captcha):是一种区分用户是计算机还是人的公共全自动程序。 作用:可以防止恶意破解密码、刷票、灌水,有效防止对某一个特定注册用户用特定程序进行暴力破解的登录尝试。 验证码交互逻辑 生成 生成随机的验证码字符capText和对应的图片capImage 生成随机的关键字r 将r和capText组成键值对存入缓存(如Redis) 将固定字符co...

abc_1114的博客 175

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java --- 生成验证码

一、效果图                二、CheckImgServlet实现类 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image....

__静禅__ 381

用servlet实现验证码

用servlet实现验证码 jsp页面代码: <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> ">

caoxinhui521的博客 313

javaWeb工程中登录页面验证码功能的实现

javaWeb工程中登录页面验证码功能的实现 使用java语言生成验证码 通过CodeDemo类实现生成验证码的功能 代码如下: package com.wll.jutils; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; ...

weixin_47341383的博客 534

生成图片验证码思路及简单实现

** 后台验证码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.HttpServletR

weixin_45902973的博客 333

java实现验证码

html文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>验证码</title> <script> /* * 点击超链接或者图片换一张 * 1、绑定单击事件

weixin_45061802的博客 149

利用 servlet sessio jsp 实现验证码登录成功

一案例 验证码分析 1. 案例需求: 1. 访问带有验证码的登录页面login.jsp 2. 用户输入用户名,密码以及验证码。 * 如果用户名和密码输入有误,跳转登录页面,提示:用户名或密码错误 * 如果验证码输入有误,跳转登录页面,提示:验证码错误 * 如果全部输入正确,则跳转到主页success.jsp,显示:用户名,欢迎您 二编写两个Servlet 3.CheckCodeServlet package cn.itcast.servlet; import javax.imageio

qq_43356038的博客 1135

【JavaWeb】验证码动态刷新以及页面的定时跳转

验证码的Servlet package com.ysw.demo; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; i...

qq_43097201的博客 759

实现验证码登陆功能

1:WebContent下新建index.jsp文件 &lt;%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%&gt; &lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www

IT小浪 326

使用servlet实现验证码--IMooC笔记

需要用到验证码时,调用生成验证码图片的servlet即可 生成图片 1.BufferedImage图像数据缓冲区 2.Graphics绘制图片 3.通过Random产生随机验证码信息 4.使用Graphics绘制图片 5.记录验证码信息到session中 6.使用ImageIO输出图片 校验验证码是否正确 1.获取页面验证码 2.获取session保存的验证码 3.比

NicolasHe的专栏 603

Servlet实现传统验证码

ImgServlet实现...导入相关的包 public class ImgServlet extends HttpServlet { private Color getRandColor(int fc, int bc) { // 给定范围获得随机颜色; Random random = new Random(); if (fc > 255)

在路上 295
上一篇: JSP实现页面验证功能随机生成图片
下一篇: JAVA实现通过IP反查域名
莫欺少年穷
博客等级 码龄15年 357粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫欺少年穷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值