Servlet实现的图形验证码

Servlet实现的图形验证码

import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.awt.*;
import java.awt.image.*;


public class ValidateCode extends HttpServlet {

private Font mFont=new Font("宋体", Font.PLAIN,12);//设置字体
//处理post
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {

doGet(request,response);
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
//取得一个1000-9999的随机数
String s="";

int intCount=0;

intCount=(new Random()).nextInt(9999);//

if(intCount<1000)intCount+=1000;

s=intCount+"";


//保存入session,用于与用户的输入进行比较.
//注意比较完之后清除session.

HttpSession session=request.getSession (true);

session.setAttribute("validateCode",s);

response.setContentType("image/gif");

ServletOutputStream out=response.getOutputStream();

BufferedImage image=new BufferedImage(35,14,BufferedImage.TYPE_INT_RGB);

Graphics gra=image.getGraphics();
//设置背景色
gra.setColor(Color.yellow);

gra.fillRect(1,1,33,12);
//设置字体色
gra.setColor(Color.black);

gra.setFont(mFont);
//输出数字
char c;

for(int i=0;i<4;i++) {

c=s.charAt(i);

gra.drawString(c+"",i*7+4,11); //7为宽度,11为上下高度位置

}

JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);

encoder.encode(image);

out.close();

}
}

  java的图片处理包需要图形环境,而linux上没有启动图形环境,找不到图形环境的server(X11 window server using ':0.0' )所以会报这个错。而通过java -Djava.awt.headless=true 这个参数的指定就可以避免java 2d去找图形环境。

  要么这样试试,应该也可以。在servlet里一开始写一句:

System.setProperty("java.awt.headless","true");

  web服务器的java虚拟机必须加以个参数java.awt.headless=true

  以tomcat为例

  可以在/etc/profile或启动web服务的用户的.bash_profile中的CATALINA_OPTS变量中加入:

CATALINA_OPTS="... -Djava.awt.headless=true"

  其他的也可以看看启动脚本。只要加上这个参数就没问题了。
Java图形验证码开源软件SimpleCaptcha Java中有很多开源xi 阅读详情

相关推荐

高级Salesforce开发面试题

自定义设置允许您创建自定义数据集,以及为组织、配置文件或特定用户创建和关联自定义数据。自定义元数据类似于自定义设置,但是自定义元数据类型中的记录被视为元数据而不是数据。自定义设置有列表和层次自定义设置两种。自定义元数据中没有此类类型。此外,自定义元数据不支持基于用户配置文件或特定用户的层次结构类型的数据。自定义设置现在不再支持关系字段。但您可以在自定义元数据对象之间创建查找。元数据查询不占用查询sql次数的限制。

weixin_45663522的博客 1239

jsp实现图形验证码

调用方法       http://...../getImg">           原理,在servlet中随机生成一个4位数字1000-9999       然后把这数字写入session       输出一个图片,上面写有这四个数字       在服务器端根据用户输入的数字和       session中的值比较。               package   com.schoolwx.u

382

基于gm/id方法的折叠式共源共栅放大器设计实践

本文详细介绍了基于gm/id设计方法进行折叠式共源共栅放大器设计的完整流程。该方法通过确定晶体管的跨导效率(gm/id)作为核心设计参数,将复杂的放大器设计转化为有明确路径的优化问题。文章以设计一个增益80dB、带宽1GHz的两级放大器为例,逐步拆解了从指标分解、关键晶体管工作点选取、到实战仿真与微调的全过程,特别强调了第二级设计对稳定性的影响以及相位裕度的调试技巧。

w8x9y0z1的博客 414

基于Jsp,Servlet的图形验证码

基于Jsp,Servlet的图形验证码 关于图形验证码 其实图形验证码还是和JavaGUI有一定关系的,因为我们知道其实这是一个图片,而图片上的字符又需要存到session中。 代码如下: <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> &lt...

LOL_toulan的博客 411

滑模控制算法——基本原理(附MATLAB程序)

选择一个滑模面和是设计参数。是滑模面函数,通常我们希望系统状态在的面上滑动。我们以一个简单的二阶系统作为示例,其状态空间方程为:是系统矩阵是输入矩阵是输出矩阵假设我们的系统如下:滑模控制算法的核心在于设计合适的滑模面和控制律,并分析系统在滑模面上的稳定性。通过上述公式和步骤,可以有效地设计滑模控制器,以处理具有非线性和不确定性的动态系统。总的来说,滑模控制算法因其鲁棒性和灵活性在处理复杂控制问题中表现出色,但在实际应用中需要精心设计以克服抖振现象和其他潜在问题。BuxuABDC。

qq_35623594的博客 2万+

mysql数据库中使用存储过程带来的好处和示例(存储过程的概念、定义、作用等详解)

MySQL的存储过程(Stored Procedure)是一组SQL语句集合。用户通过指定的存储过程名和参数来调用并执行它。存储过程可以在数据库中预编译并存储,这样它们可以被多次调用而无需重新编写或解析SQL语句。 存储过程将复杂的SQL逻辑封装在一个可重用的单元中。多次调用存储过程,而不需要重复编写相同的SQL代码。- 通过封装,可以隐藏复杂的SQL逻辑,只向用户或应用程序提供简单的接口。MySQL的存储过程和编程语言中的函数的原理和目标是一致的:封装可重用的代码逻辑并提高代码的可维护性和可重用性。

weixin_70208651的博客 1717

linux sun/awt/X11GraphicsEnvironment 找不到错误

转载自:linux sun/awt/X11GraphicsEnvironment_落叶翩翩的优快云博客-优快云博客_sun.awt.x11graphicsenvironment 在Linux下,我们在用Java的图片包来处理图片时,经常遇到java.lang.NoClassDefFoundError:sun.awt.X11GraphicsEnvironment 这种异常,这时因为java虚拟机在处理图片时需要本地的x-server的支持,解决方法有两种: 1Java1.4版本以上 启动...

且听风吟的专栏 1084

火星遥感数据的获取与处理工具安装详解

有关火星遥感影像数据的那些事...

FengYingLuo的博客 5572

sun.awt.X11GraphicsEncvironment解决方案

最近java web项目中涉及文件下载功能,发现使用weblogic部署到Linux服务器后,excel文件无法下载,提示错误为java.lang.NoClassDefFoundError:Could not initialize class sun.awt.X11GraphicsEncvironment ; weblogic设置的方法为,在setDomainEnv.sh中添加启动参数"-Djava.awt.headless=true",例: JAVA_OPTIONS="${JAVA_OPTIONS} -D

hhhhhhhr的博客 823

八戒留档之宝塔部署edusoho

1.安装好基础的服务 2.上传你下载的代码到www/wwwroot文件3、配置网站 4.编辑创建的网站修改nginx文件 NGINX配置如下 server { listen 80; server_name 你的域名; root /www/wwwroot/项目文件名称/web/; location / { try_files $uri /app_dev.php$is_args$args; } ...

wolf23151269的博客 2540

Pyinstaller打包为可执行文件编码错误的问题

Pyinstaller打包为可执行文件编码错误的问题 写好的python程序在vscode上运行没有任何问题,将程序利用pyinstaller打包后,运行程序发生了错误。 错误代码 UnicodeDecodeError: ‘utf-8' codec can't decode byte 0xce in position 20-21:invalid cotinuation byte 网上找到的解决方案是: 1.在命令行中输入 chcp 65001 2.按正常方式进行封装 pyinstaller

xuefeng_he的博客 1559

Servlet实现图形验证码

Java Servlet 实现的彩色图形验证码,项目源码分析 + 配置。

自由先锋 2321

AI应用质量工程实践:从评估到监控的完整体系构建

在软件工程领域,质量保障体系是确保产品稳定可靠的核心机制,涉及度量指标、保障流程和工具链的完整闭环。随着生成式AI应用的快速发展,如何将传统软件工程中的质量门禁思想引入AI领域,成为工程实践的关键挑战。其核心原理在于构建可量化、可监控、可改进的质量评估框架,通过自动化测试、持续监控和反馈优化来管理AI输出的不确定性。这一技术价值在于将AI应用从原型阶段推向产品化,确保输出的一致性、安全性和可靠性。在实际应用场景中,开发者需要从功能性、非功能性、一致性和合规性四个维度构建评估体系,并借助LLM-as-a-Ju

weixin_28728279的博客 294

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

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

ly's Blog 2481

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

java servlet实现图形验证码

验证码是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。java 网页开发中经常会在登陆页面添加一张验证码图片,使得每次登陆都要输入验证码。

yifan065的专栏 525

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

java web开发:servlet中图形验证码功能的实现

一 验证码的由来 在web项目开发中,为了防止部分人使用自动工具(如:自动注册机)等进行批量的数据处理,在不同的功能节点部分,添加了验证码进行验证,达到对自动软件的屏蔽效果 最经典的应用如:网站注册图形验证码;接下来,通过java技术,结合servlet实现一个网站注册需要的图形验证码程序,提供大家参考。 二 实现注册页面图形验证码效果 1. 创建web项目:jav

自由先锋 2627

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Servlet编程实现实现图形验证码

//----------------------------------servlet文件---------------------------- package com.msit.servlet; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Bu

风~忆 469

Servlet-登录时的图形验证码

概述 为了防止黑客或者软件的恶意输入登录,在登录时,我们必须添加类似于随机数或验证码之类的安全措施。 1. 图形验证码(方法一) 在使用servlet创建图形验证码时,必须提前创建lib资源目录,并且导入相关的Validate的jar包,添加到资源目录下。 代码如下: @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

weixin_42297061的博客 221

Servlet之图形验证码工具类封装

图形验证码工具类封装Java图像验证码的相关实现类Image抽象类与图像坐标系BufferedImage类ColorModel组件Raster组件BufferedImage类的基本操作Graphics抽象类Java图像验证码工具类验证码工具类&Servlet配置使用定义Servlet类测试     通常,在网站开发时,在登录、注册以及一些敏感操作的时候,为了防止服务器被暴力请求,或爬虫爬取,可以使用验证码进行过滤,减轻服务器的压力。   &

席木木的博客 1023

java servlet验证码_Servlet 实现验证码

分析生成图片实现类① 定义BufferedImage 对象② 获得 Graphics 对象③ 通过 Random 产生随机验证码信息④ 使用 Graphics 绘制图片⑤ 记录验证码信息到 session 中⑥ 使用 ImageIO 输出图片代码实现1、新建 web 项目 CheckCode,在 WebContent 下新建 index.jspindex.jsppageEncoding="UTF-...

weixin_29123181的博客 357

基于jsp+servlet+js的图形验证码

jsp的图形验证码 servlet的生成图形验证码 package user; import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.ServletException; im

qq_42998270的博客 208

基于Servlet的验证码技术

基于Servlet的验证码技术 原理:验证码Servlet产生随机字符,保存到Session中,以后从Session中获取这个随机字符和用户输入进行比对。 第一步:产生随机验证码工具Servlet(要求能够看懂核心代码): @WebServlet(urlPatterns = "/verifyCodeController") public class VerifyCodeController ex...

哈 769

Servler 生成随机验证码

import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.ServletConfig; import javax.servl.

tonysong111073的专栏 223

图形验证码(Hutool-captcha)

介绍 验证码功能位于cn.hutool.captcha包中,核心接口为ICaptcha,此接口定义了以下方法: createCode创建验证码,实现类需同时生成随机验证码字符串和验证码图片 getCode获取验证码的文字内容 verify验证验证码是否正确,建议忽略大小写 write将验证码写出到目标流中 其中write方法只有一个OutputStream,ICaptcha实现类...

qq_38795959的博客 2万+

验证码(servlet)

package com.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http....

qq_35367566的博客 205

验证码 ajax java_Java、Servlet、JSP和Ajax实现验证码

环境:windows7,MyEclipse 9首先是写生成验证图片的类:1 packagecn.com.leamon.util;23 importjava.awt.Color;4 importjava.awt.Font;5 importjava.awt.Graphics2D;6 importjava.awt.image.BufferedImage;7 importjava.io.IOExcepti...

weixin_33195162的博客 161
上一篇: servlet产生数字验证码
下一篇: JAVA如何调用WINDOWS命令行
lele521
博客等级 码龄20年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值