JAVA验证码功能实现(生成验证码的Servlet)

servlet生成验证码和点击刷新验证码 javaweb项目,有两个文件,一个java文件,用来生成验证码并输出到servlet输出流中。一个html文件,用来写组件和点击事件,刷新验证码。 CodeServlet.java文件 package net.test.servlet; import javax.imageio.ImageIO; import javax.servlet.ServletException; import jav... 阅读详情
package com.lovo.web.servlet;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;


/**
 * Copyright (C), 2006-2011, ChengDu Lovo info. Co., Ltd.
 * FileName: Test.java
 * 生成验证码的Servlet
 * 
 * @author  何天玺
 * @Date    2014年6月19日
 * @version 1.00 
 */
public class RadomCodeServlet extends HttpServlet{
	public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
		int width = 90;
		int height = 40;
		//创建画板
		BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
		//获取画笔
		Graphics g = image.getGraphics();
		//绘制一个白色背景
		g.setColor(Color.white);
		g.fillRect(0, 0, width, height);
		//随机出现的字符
		String allStr = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		char [] cs = allStr.toCharArray();
		//随机生成5-10条线
		for(int i = 0;i<generateCode(6)+5;i++){
			//随机产生画笔的颜色
			g.setColor(new Color(generateCode(256),generateCode(256),generateCode(256)));
			//画随机线条
			g.drawLine(generateCode(width), generateCode(height),generateCode(width), generateCode(height));			
		}
		for(int i = 0;i < 4;i++){
			String code = cs[generateCode(cs.length)]+"";
			//随机产生画笔的颜色
			g.setColor(new Color(generateCode(256),generateCode(256),generateCode(256)));
			//随机设置字体大小
			g.setFont(new Font("黑体", generateCode(3),generateCode(11)+15));
			
			g.drawString(code, i*10+generateCode(11),generateCode(11)+25);	
		}
		//将图片进行编码后输出到页面上
		JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(resp.getOutputStream());
		encoder.encode(image);
	}
	/**
	 * 产生随机数 
	 * @param num
	 * @return
	 */
	public int generateCode(int num){
		return (int)(Math.random() * num);
	}
}

【java图片验证码】Java 服务端生成图片验证码及验证 Java 服务端生成图片验证码及验证 简介 验证码是防止有人利用机器人自动批量注册、对特定的注册用户用特定程序暴力破解方 式进行不断的登录、灌水。因为验证码是一个混合了数字或符号的图片,人眼看起来都费劲, 机器识别起来就更困难。 分析 登录表单很可能遭到模拟登录的暴力破解攻击,要么轻易获得特定账户的登录信息,要么给服务器增加了大量的负荷。解决的办法,一般就是在登录前给出一个随机的信息(验证码),非法的非 Web 途径登录者会看不到这个验证码,从而让用户安全登录。为防止攻击者破获验证码,需将验证 阅读详情

相关推荐

实现Servlet验证码功能的详细代码解析

Servlet是Java EE技术中不可或缺的一部分,作为一种服务器端的小程序,Servlet的作用在于生成动态Web页面内容,并与客户端进行交互。它运行在Servlet容器中,如Tomcat,与传统的CGI(Common Gateway Interface)相比,Servlet具有更高的效率和更好的扩展性。在本章中,我们将介绍Servlet的基本概念,以及它如何与HTTP请求和响应进行交互。此外,我们还将深入探讨Servlet生命周期中的不同阶段,包括初始化、处理请求和终止。

weixin_35757531的博客 2283

java中随机动态生成验证码

public class CheckCodeServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { //服务器通知浏览器不要缓存 response.setHeade...

weixin_44762620的博客 384

登陆验证+servlet动态生成图片验证码

登陆验证+servlet动态生成图片验证码

生成验证码的Servlet

生成验证码的Servlet,如图:// Fig. 5.6_02:  ImageCodeMakerServlet.java// 读取图像文件并生成验证码的Servletpackage com.fatcat.webchart;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import

shang_soft的专栏 470

三种方法实现验证码

三种方式实现验证码,用servlet/jcaptcha/kaptcha三种方式写的,有数字验证,中文验证,数字加法验证,开发工具是eclipse,运行环境Tomcat

PID循迹控制算法

前言  让小车进行循迹最重要的是获取车相对于循迹线的位置,关于循迹模块的原理我已经在之前的一篇博客上讲过,如果大家没看过的话可以点此链接:PID循迹模块原理。 PID循迹原理简介 图1 循迹车寻线行走图示 图2 市场常见循迹传感器  PID循迹的原理我们大致可以用常识性思维去思考下,如图1所示为循迹车寻线行走图示,现在小车要按照中间那条黑线循迹行走,如果车头往左偏则需要控制方向盘让车往右转,车头往又偏则需要让车往左转。但是仅仅只有左转和右转的话,车一到左边就向右转,一到右边就向左转,则车会来回在线左右晃动

Dinvent的博客 7万+

Web网页实现登录验证码功能

三部分内容1、在登录页面生成验证码图片2、点击图片更换新的验证码图片3、点击登录,判定输入验证码与实际验证码是否一致1、如何生成一个验证码图片,放置在登录页面?servlet:package com.zs.ssh.yzmServlet; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import ...

myblogzz的博客 2万+

VM与欧姆龙PLC通讯设置实战:Fins TCP/UDP协议详解

本文详细解析了VM(VisionMaster)与欧姆龙PLC通过Fins TCP/UDP协议进行通讯的实战设置。内容涵盖网络配置、协议选择(TCP可靠性与UDP实时性)、VM端地址映射与数据点添加、以及数据接收解析流程,并提供了常见错误排查与高级调试技巧,帮助视觉与自动化工程师快速实现稳定可靠的工业通讯集成。

weixin_29172963的博客 328

servlet生成验证码

servlet生成验证码一 创建项目二 java代码三 html代码四 完成 一 创建项目 创建工程,创建java、html, 建成之后查看web.xml: 二 java代码 Servlet4.java import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image...

qq_43309933的博客 496

YOLOv11+SAHI实战:5步搞定无人机航拍小目标检测(附VisDrone数据集调参技巧)

本文详细介绍了如何结合YOLOv11目标检测框架与SAHI切片推理技术,高效解决无人机航拍图像中的小目标检测难题。通过VisDrone数据集调参技巧和5步实战指南,帮助开发者快速构建高性能检测系统,显著提升小目标检测的准确率和效率。

rum55的博客 190

Windows 11下Telnet端口23连接失败的终极解决方案(附详细排查步骤)

本文详细解析了Windows 11系统中Telnet端口23连接失败的常见原因及解决方案。从Telnet客户端功能启用、服务端配置检查到网络连接诊断,提供了一套完整的排查步骤,帮助用户快速定位并解决连接问题,同时给出了安全使用Telnet的建议。

win55的博客 452

javaweb中使用servlet实现验证码

1、jsp页面在jsp页面中,我们要有下面几部分: 1.输入框 2.验证码图片 3.看不清按钮 4.提交按钮 预期效果:思路:2、jsp页面代码:<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%> <% String path = request.getContextPath()

jin's blog 6010

(6)APB总线协议 —— 逻辑梳理(0.1认知)

这篇大家就差不多看看就行

CAUC_learner的博客 2702

Java实现可点击切换验证码

为大家讲解一个简单的知识点,那就是题目所说的“Java实现可点击切换验证码”。

weixin_50635856的博客 1607

C语言实现惯导更新算法(机械编排)

四元数可用于描述刚体转动或姿态变换,与方向余弦阵相比,表达简洁。四元数是一个包含四个元素的列向量,列向量的第一个元素表示刚体围绕旋转轴转过的角度大小,其余3个元素代表了旋转轴的方向。

十八与她的博客 1730

HCIE-Datacom笔试题库

关于HCIE Datacom笔试考试题目整理!

坏坏-5的博客 608

java后台产生验证码后台验证

直接跳severlet在java后台生成验证码:@RequestMapping(value="yzm.action") public void Yzm(HttpSession session,HttpServletResponse resp){ // 验证码图片的宽度。 int width = 60; // 验证码图片的高度。

小秋蜀黍的博客 1万+

全球APN信息汇总

全球APN信息,电信APN,移动APN,联通APN,台湾APN,马来西亚APN,俄罗斯APN,日本APN,泰国APN,美国APN,英国APN,法国APN,德国APN,意大利APN,葡萄牙APN,土耳其APN,荷兰APN,丹麦APN,比利时APN,爱尔兰APN,新加坡APN,越南APN,老挝APN,菲律宾APN,印尼APN,泰国APN,柬埔寨APN,巴基斯坦APN,印度APN,奥地利APN,保加利亚APN,捷克APN,立陶宛APN,罗马尼亚APN,挪威APN,希腊APN,匈牙利APN,瑞士APN,乌克兰APN

renkai721的专栏 2796

动态生成验证码的简单实现

功能描述:生成一张验证码并输出到页面上;点击验证码或文字,更换验证码 简单来说,就分三步:生成一张图片 -> 美化图片 -> 将图片输出到页面;话不多说,看代码: 验证码Servlet import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.annotat...

Augenstern_的博客 1207

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java实现验证码验证功能

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

天堂地址不详 2922

OV9734 DATASHEET,完整规格书

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

使用JSP、servlet和ajax实现无刷新获取验证码

实现效果如下图所示: 首先编写服务器端的代码,实现向客户端输出随机的验证码,具体代码如下: package com.wxq.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Random; import javax.servlet.ServletException; imp

JavaQ 2787

java 实现动态验证码_java实现动态验证码

java动态实现验证码,供大家参考,具体内容如下【实现效果】点击图片或者文字可以更换验证码验证码随机生成,由大小写字母和数字组成验证码字体颜色随机生成,字母角度有偏转干扰线随机分布验证码的功能: 防止恶意的表单注册VerificationCode.java 验证码功能实现package com.iqqcode.servlet.checkcode;import javax.imageio.Image...

weixin_36391973的博客 936

Servlet实现一个简单的登录【验证码】功能

Servlet实现一个简单的登录【验证码】功能 开发工具 主要用的开发工具为 MyEclipse(2014、2016均可)、Tomcat 6.0以上、浏览器等。 开发环境 开发环境为windows系统,已安装配置Java最新版开发环境。 主要功能与语言 登录验证码。 所采用JSP+Servlet+JavaBean传统方式,仅限于学习使用。 主要代码实现  ...

jcy_15090250860的博客 1325

Servlet实现一个简单的登录[验证码]功能

开发工具 主要用的开发工具为 MyEclipse(2014、2016均可)、Tomcat 6.0以上、浏览器等。 开发环境 开发环境为windows系统,已安装配置Java最新版开发环境。 主要功能与语言 登录验证码。 所采用JSP+Servlet+JavaBean传统方式,仅限于学习使用。 主要代码实现 ValidateServlet.java(实现的功能:随机生成验证码) ValidateSe...

ygn12的博客 1155

使用Servlet实现图形验证码登录页面

1.介绍 首先需要写一个生成图形验证码的Servlet: 我这里的Servlet为:createImageServlet 然后我们使用登录页面来验证是否能获取图形验证码。 登录后通过Servlet判断用户名密码是否为张三和123(这里简单操作就不连接数据库了) 登录页面:login.jsp 这个页面就是一个表单 判断用户名的Servlet:logCheckServlet 如果用户名密码正确则请求...

ly's Blog 2481

基于Servlet实现验证码图片

仅限于实现验证码,没有完善登录操作,验证码生成的代码理解就好,里面很多的类和方法都不常用,不同形式的验证码代码网上有很多,都可以直接用。如果有问题欢迎评论 效果 前端页面 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title h...

详情请看注释 204
上一篇: HTML安全16进制色一览表
下一篇: hibernate中lazy的使用
棒老师
博客等级 码龄12年 40粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值