`
leiwuluan
  • 浏览: 695192 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

struts2实现图片验证码

阅读更多

没有什么可以说的。呵呵就看下面的代码就行了。呵呵没有时间所以不能解释了。呵呵,,,见量

action

package com.comm.validateNumImage.action;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;

import com.comm.action.BaseAction;

public class ValidateNumImageManagerAction extends BaseAction {
	private ByteArrayInputStream inputStream;  
    
    public String getValidateImage() throws Exception{ 
    	char[] mapTable = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
                'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
                'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8',
                '9' };
    	
//      在内存中创建图象   
    	int width=60, height=20;   
    	BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);

    	//
    	Graphics2D g = image.createGraphics();
	
    	// 填充背景色
    	g.setColor(Color.white);
    	g.fillRect(0, 0, width, height);
	
    	// 绘制边框
    	g.setColor(Color.BLACK);
    	g.drawRect(0, 0, width - 1, height - 1);
		
		 // 验证码
    	String security = "";
    	
    	// 随机生成验证码
    	Random random = new Random();
    	for (int i = 0; i < 4; i++) {
	        security += mapTable[random.nextInt(mapTable.length)];
    	}
	
    	// 绘制验证码
    	g.setColor(Color.BLACK);
    	g.setFont(new Font("MS Sans Serif", Font.PLAIN, 18));
	
    	String temp = security.substring(0, 1);
    	g.drawString(temp, 7, 15);
    	temp = security.substring(1, 2);
    	g.drawString(temp, 18, 17);
    	temp = security.substring(2, 3);
    	g.drawString(temp, 28, 18);
    	temp = security.substring(3, 4);
    	g.drawString(temp, 40, 17);
	
    	// 绘制干扰点
    	g.setColor(Color.BLACK);
    	for (int i = 0; i < 20; i++) {
	        g.drawOval(random.nextInt(width), random.nextInt(height), 0, 0);
    	}
    	g.dispose(); 
    	
    	this.getRequest().getSession().setAttribute("security", security);
    	ByteArrayOutputStream output = new ByteArrayOutputStream();   
    	ImageOutputStream imageOut = ImageIO.createImageOutputStream(output);   
    	ImageIO.write(image, "JPEG", imageOut);   
    	imageOut.close();   
    	ByteArrayInputStream input = new ByteArrayInputStream(output.toByteArray());   
    	this.setInputStream(input);   
    	return SUCCESS;   
    }

    public void setInputStream(ByteArrayInputStream inputStream) {   
        this.inputStream = inputStream;   
    }   
    public ByteArrayInputStream getInputStream() {   
        return inputStream;   
    }
}

 

action 配置

<action name="getValidateImage" class="validateNumImageManagerAction" method="getValidateImage">   
	<result type="stream">   
		<param name="contentType">image/jpeg</param>   
		 <param name="inputName">inputStream</param>   
	</result>   
</action>  

 

js

<script type="text/javascript">   
    function changeValidateCode(obj) {   
           //获取当前的时间作为参数,无具体意义   
        var timenow = new Date().getTime();   
           //每次请求需要一个不同的参数,否则可能会返回同样的验证码   
        //这和浏览器的缓存机制有关系,也可以把页面设置为不缓存,这样就不用这个参数了。   
        obj.src="getValidateImage.action?d="+timenow;   
    }   
</script>   
  
<img src="getValidateImage.action" onclick="changeValidateCode(this)"/>  

 

 



 

呵呵没有办法最近有点忙了。呵呵就这样子了。呵

 

  • 大小: 1.9 KB
3
0
分享到:
评论

相关推荐

    Struts2-登录验证码

    完整的Struts2框架,联系oracle数据库实现登录验证 验证码功能:点击图片切换验证码,验证码错误提示 登录成功后变量session中的list集合 内含备注

    java动态验证码Struts2集成实现

    java动态验证码Struts2集成实现

    struts2验证码完整实例

    1、页面加载后,想后台发出生产验证码图片的请求,并在前台显示验证码图片,同时将验证码上的数字 通过ActionContext.getContext().getSession().put("random", randomNum.getRandomCode())将数字存放到session当中 2...

    struts2下实现了图片验证码

    想自己写一个验证码吗?其实不用这么麻烦,网上有很多这样的。这里的代码是纯数字的验证码,从页面到配置实现已经详细的解说了,只要粘贴复制就可以了

    基于Exjs6+Struts2拖动(滑动)图片验证码的实现

    用ExtJs6+strust2重新改写的拖动图片验证码的实现方法,基于网络上的Jquery版修改,直接导入myeclipse工程即可。jar包太大,不在压缩包中,需要的同学请参考/webroot/下的“所需jar包列表.jpg”,自己从网络下载jar...

    STRUTS2个人通讯录管理系统

    STRUTS2个人通讯录管理系统实现登陆带验证码分页上传图片mysql数据可

    SSH框架 Struts+Spring+Hibernate+Ajax+功能齐全(验证码+二进制文件图片读写数据库)的网站.zip

    SSH框架 Struts+Spring+Hibernate+Ajax+功能齐全(验证码+二进制文件图片读写数据库)的网站.zip

    达内Struts2.0学习之当当网系统学习案例

    Struts 2.0技术综合应用,包括上传图片功能,明文加密算法SHA-1和MD5,上传用户头像,根据action随机生成验证码,用链接实现数据的分页处理,以及拦截器和Logger日志框架的引入,总之相当强大,学习Struts 2.0,把这...

    登录 单点登录 带验证码登录

    这是一个简单而完整的登录实例,实现单点登录效果,java自动生成图片验证码,访问拦截,没登录时不可以访问会员页面。是一个完整的实例,struts构建,内有jar包。

    FreeMarke实例代码

    由FreeMarker生成页面,通过模板显示准备的数据 FreeMarker...FreeMarker同样可以应用于非Web应用程序环境 FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库 FreeMarker是免费的

    struts2.1.8+JPA3.0(hibernate实现)+spring2.5+extjs3.2中型BBS项目

    支持上传图片和文件,文件作为附件可以下载,图片可直接在JSP页面中显示 支持回帖,并在主楼中显示 答辩用PPT 选做部分: 帖子搜索 用户查找 管理员对帖子加精、置顶 根据浏览量,自动在首页生成热门帖子列表...

    搭建SSH框架的代码

    8.有全文检索工具类包含索引的创建、查询等,自动分页Bean,Excel读取/导出等功能、汉字转拼音,MD5加密,加密解密,图片转字符、字符转图片,IP检查,拦截器权限拦截,Struts2Utils类,Spring3Utils类,轻松搞定...

    百度地图毕业设计源码-FutureStudio:这是在Struts2、Hibernate3、Spring3上构建的J2ee项目

    提供一套图片验证码,邮箱验证码的功能(图片验证码使用百度服务,本地版本计划中,暂未实现,) (已废弃)06 log 这个工程的原本目标是为系统的所有日志提供一个方案,方便于以后对日志的输出,进

    当当网全套源码(附带邮箱验证功能)

    Struts2,JDBC(连接池),jQuery,Ajax 2)设计思想 MVC和分层设计思想 a.显示层:JSP组件(jQuery,Ajax) b.控制层:Struts2控制器组件、Action组件 c.业务层:Bean组件 d.数据访问层:DAO组件(JDBC) 4.数据库...

    java开源包2

    Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码图片。 Java 命令行解析...

    java开源包5

    Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码图片。 Java 命令行解析...

    java开源包3

    Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码图片。 Java 命令行解析...

    java开源包4

    Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码图片。 Java 命令行解析...

    java开源包1

    Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码图片。 Java 命令行解析...

    java开源包11

    Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码图片。 Java 命令行解析...

Global site tag (gtag.js) - Google Analytics