1.JSP页面:
<tr> <td valign="top" class="w1"> 验证码: </td> <td> <img id="validateImage" align="middle" id="validateImage" src="imageCode!checkCodeImage.action" width="150" height="40" onclick="this.src='imageCode!checkCodeImage.action?time='+(new Date()).getTime();" /> <s:textfield name="validateCode" id="validateCode" onblur="return checkValidateCode()"></s:textfield> <div> <p class="t1"> <span id="vcodeValidMsg">请输入图片中的四个字母。</span> <a href="javascript:" id="changeImage">看不清,再换一张</a> </p> <span id="numberInfo" style="color: red"> <s:property value="errors['validateCode']" /> </span> </div> </td> </tr>
2.JS
$(function(){ //为验证码看不清链接添加单击切换处理 $("#changeImage").click(function(event){ $("#validateImage").attr("src","imageCode!checkCodeImage.action?time="+new Date().getTime()); event.preventDefault();//防止浏览器默认处理href. }); })
3.struts2配置文件struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="user-package" extends="dang-package" namespace="/user"> <action name="imageCode" class="XXX.CheckCodeGenerationAction"> <result name="image" type="stream"> <param name="inputName">checkCodeStream</param> </result> </action> </package> </struts>
4.JAVA代码
CheckCodeGenerationAction: public String checkCodeImage() { Map<String, BufferedImage> map = CheckCodeUtil.getCheckCodeImage(); String code = map.keySet().iterator().next(); session.put("code", code); BufferedImage image = map.get(code); checkCodeStream = CheckCodeUtil.parseImage(image); return "image"; } CheckCodeUtil: public final class CheckCodeUtil { private static final String[] chars = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "东", "南", "西", "北", "中", "发", "白" }; private static final int SIZE = 5; private static final int LINES = 20; private static final int WIDTH = 200; private static final int HEIGHT = 100; private static final int FONT_SIZE = 60; public static Map<String, BufferedImage> getCheckCodeImage(){ StringBuffer sb = new StringBuffer(); BufferedImage image = new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); //画底色 g.setColor(Color.LIGHT_GRAY); g.fillRect(0, 0, WIDTH, HEIGHT); Random random = new Random(); //画随机字符 for(int i=1;i<=SIZE;i++){ int num = random.nextInt(chars.length); g.setColor(getRandomColor()); g.setFont(new Font(null,Font.BOLD+Font.ITALIC,FONT_SIZE)); g.drawString(chars[num], (i-1)*WIDTH/SIZE, HEIGHT/2); sb.append(chars[num]); } //画干扰线 for(int i=0;i<LINES;i++){ g.setColor(getRandomColor()); g.drawLine(random.nextInt(WIDTH), random.nextInt(HEIGHT), random.nextInt(WIDTH), random.nextInt(HEIGHT)); } Map<String, BufferedImage> map = new HashMap<String, BufferedImage>(); map.put(sb.toString(), image); return map; } public static Color getRandomColor() { Random ran = new Random(); Color color = new Color(ran.nextInt(256), ran.nextInt(256), ran .nextInt(256)); return color; } public static InputStream parseImage(BufferedImage image){ ByteArrayOutputStream out = new ByteArrayOutputStream(); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); try{ encoder.encode(image); ByteArrayInputStream inputStream = new ByteArrayInputStream(out.toByteArray()); return inputStream; }catch(Exception e){ e.printStackTrace(); return null; } } }
相关推荐
改进的PHP技术下的图片验证码实现方案.pdf
本教程将详细讲解如何在Android项目中实现图片验证码的功能。 首先,理解图片验证码的基本原理。验证码通常由一串随机字符组成,这些字符被扭曲、旋转、加噪,以增加机器识别的难度。用户需要正确输入显示的字符...
在这个特定的案例中,我们关注的是一个与ASP.NET相关的图片验证码实现。 在ASP.NET中创建图片验证码通常涉及以下步骤: 1. **生成随机字符串**:首先,我们需要生成一个随机的字符串,这个字符串将被显示在图片上...
asp图片验证码asp图片验证码asp图片验证码asp图片验证码asp图片验证码asp图片验证码asp图片验证码asp图片验证码asp图片验证码asp图片验证码asp图片验证码asp图片验证码asp图片验证码
以下是关于iOS图片验证码实现的关键知识点: 1. **验证码的基本原理**:验证码的主要目的是验证用户是真实的人而非机器。它通常要求用户识别并输入图片上显示的一组随机字符或数字,以证明他们具备人类视觉识别的...
总的来说,这个项目提供了一个基础的图片验证码实现框架,开发者可以根据实际需求对其进行扩展,比如增加字符集、调整字符样式、改变噪声模式等,以提高验证码的安全性和用户体验。对于初学者来说,这是一个很好的...
2. **Java图片验证码实现**: 在Java中,我们可以使用`java.awt`和`javax.imageio`库来创建和处理图片。首先,创建一个新的空白图片,然后在图片上绘制随机颜色和形状的干扰线,最后在合适的位置上绘制随机生成的...
### Java 图片验证码实现原理与示例解析 #### 一、引言 随着网络安全的重要性日益增加,验证码成为了网站登录及表单提交时不可或缺的一部分。它主要用于区分操作者是人类还是自动程序,以此来防止恶意软件的攻击。...
在介绍ThinkPHP3.2.1中图片验证码实现的过程中,以下知识点至关重要: 1. ThinkPHP框架版本:本文讨论的是ThinkPHP3.2.1版本,这是一个稳定且广泛使用的框架版本。开发者需要确认自己所使用的ThinkPHP版本,以便...
JAVA实现随机图片验证码简单方法.rtf
1.部署步骤 1.1 100%可生产使用. 1.2 导入到idea时候选择maven项目 1.3 修改demo里面子项目resources/application.yml的redis... 4.2拖动图片验证码:https://blog.csdn.net/m0_38138879/article/details/117559456
总的来说,这个资源为Web开发者提供了一套完整的图片验证码实现,涵盖了从生成到验证的全过程,且具有高度的可定制性。通过学习和利用这个控件,开发者可以有效地增强他们的Web应用程序的安全性,防止非法自动化操作...
本文实例为大家分享了VUE实现图片验证码的具体代码,供大家参考,具体内容如下 1. 概述 1.1 说明 在开发过程中,有时候需要使用图片验证码进行增加安全强度,在点击图片时更新新的图片验证码,记录此功能,以便后期...
总之,ASP.NET MVC中的图片验证码实现涉及多个步骤,从生成随机字符串到绘制图片,再到验证用户输入,每个环节都需要仔细设计和实现。通过这种方式,我们可以增强网站的安全性,防止自动化攻击,同时确保用户体验的...
### Java 图片验证码实现原理与代码解析 #### 一、概述 在许多网站或应用程序中,为了防止机器人的恶意操作,经常会使用到图形验证码。Java 图片验证码是一种常见的实现方式,它通过生成具有一定随机性的图像,并...
总之,这个“随即图片验证码”项目涵盖了验证码生成、图像处理、服务器验证和前端交互等多个方面,为开发者提供了一个完整的图片验证码实现示例。通过深入理解并实践这个项目,可以提升在Web安全和用户体验设计上的...
PHP图片验证码的实现
【beego框架图形验证码实现】是使用Go语言开发的一个高效且功能丰富的图形验证码库,它为Web应用提供了安全的验证码生成服务。这个库的核心目的是为了防止自动化程序(如机器人)进行非法操作,如批量注册、恶意登录...
### Struts2 图片验证码实现解析 #### 一、引言 在Web应用程序中,图片验证码(CAPTCHA)被广泛用于防止自动化攻击和机器人操作,确保用户是真实的人类。Struts2框架提供了丰富的功能来集成这样的安全特性,本文将...
采用ajax技术实现的图形验证码,在前端进行验证。验证码信息为图片。每一行代码均有注释,通俗易懂。 实现步骤: 1、创建web工程 2、在jsp页面,编写一个请求servlet的名称"> 3、编写一个servlet,在servlet中产生...