`
dearfashion
  • 浏览: 2460 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于struts2 验证码生成问题

阅读更多
问题:重复调用每次返回action的值相同

action:
================================================================
public class AccountAction extends ActionSupport {

/**
*生成验证图片的execute方法,
/*
public String validataImage(){
  createInputStream(ValidateImageService.Disturb_Type_Complex);//生成图片inputStream
  return SUCCESS;
}

/**
*生成图片的具体方法
/*
private String createInputStream(int disturbType) throws IOException{
        ByteArrayOutputStream bos =new ByteArrayOutputStream();  
        String validateCode = null;
        ValidateImageServiceImp validateImageService=new ValidateImageServiceImp();
        validateCode = validateImageService.createValidateCode(disturbType,18,   bos, 100, 30, null, 5);//把验证码图片放入bos
        inputStream = new ByteArrayInputStream(bos.toByteArray());  
        bos.close();  
        return validateCode;  
    }
}

struts.xml
========================================================================
<action name="validataImage" class="com.dearfashion.eshop.security.action.AccountAction" method="validataImage">       
    <result name="success" type="stream">
       <param name="contentType">image/jpeg</param>
       <param name="inputName">inputStream</param>
    </result>     
   </action>

jsp
====================================================
<img id="random" src="validataImage.action" />
          <a href="#" onclick="javascript:document.getElementById('random').src='validataImage.action'">看不清楚</a>


==========================================
点击 ‘看不清楚’每次返回的结果是同一张图片,或者重复调用
<img id="random" src="validataImage.action" />
<img id="random" src="validataImage.action" />
多次,也是同一张图片,并且方法AccountAction.validataImage()只会执行一次
分析原因,可能是存在缓冲,也可能其他原因,如果直接用response的方式就没有问题
如:outStream = response.getOutputStream();         
    JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(outStream);
    encoder.encode(image);           



   
分享到:
评论

相关推荐

    Struts2的验证码生成

    1. **安装库**:首先,我们需要一个验证码生成库。例如,我们可以使用Apache Commons Codec库,它提供了生成随机字符串的功能。另外,还需要一个图像处理库,如Java的Java Advanced Imaging (JAI) 或者更简单的如...

    struts2 生成验证码

    ### Struts2 生成验证码知识点解析 #### 一、引言 在Web应用程序开发中,验证码是一种常见的安全机制,用于防止自动化的恶意攻击,如垃圾邮件发送或非法登录尝试等。Struts2作为一款流行的Java Web应用框架,支持...

    基于struts2的验证码生成

    基于Struts2的验证码生成就是将这一功能集成到Struts2框架中的过程。 验证码的主要目的是验证用户是人类而非机器,通常通过显示一个随机生成的图像,要求用户输入图像中显示的字符来实现。在基于Struts2的验证码...

    struts2-生成图片验证码

    此外,每次新的验证码生成时,旧的验证码应从session中清除,防止重复使用。 在提供的文件列表中,我们看到的`.classpath`和`.project`是Eclipse项目设置文件,`WebContent`是Web应用的根目录,`src`是源代码目录,...

    struts2生成中文验证码的Action

    3. **生成中文验证码**: 验证码生成通常涉及随机选择汉字并组合。你可以使用Java的`Random`类和预先准备的汉字字符数组来生成随机的中文字符串。确保生成的字符串长度适中,一般4到6个字符。 4. **图形化验证码**: ...

    Struts2验证码

    验证码生成后,需要将其保存到Session中,以便后续前端提交时进行校验: ```java request.getSession().setAttribute("captcha", captcha); ``` 2. **图片验证码** 如果需要图形验证码,可以使用Java的`java....

    struts2验证码生成

    验证码的生成,源代码,供参考

    Struts2验证码用户登录

    Struts2验证码用户登录是一个常见的...总的来说,Struts2验证码用户登录的实现涉及了后端验证码生成、session存储、前端JavaScript交互以及Struts2的MVC架构。理解并掌握这一过程,对于开发安全的Web应用程序至关重要。

    最新的struts2验证码.rar

    1. **验证码生成**:验证码通常由随机生成的一串字符或数字组成,可以是纯文本、图片或数学问题。在Struts2中,可以使用Java的Random类或其他库(如Apache Commons Lang的RandomStringUtils)来生成验证码的内容,...

    struts2 验证码----web界面生成几种常见的验证码

    Struts2提供了一些内置的支持来帮助开发者生成和验证验证码,以增强网站的安全性。 验证码的种类多样,包括图像验证码、音频验证码、数学问题验证码等。在Struts2中,我们可以使用插件或自定义拦截器来实现这些功能...

    验证码生成工具类

    验证码生成工具类是一种在Web应用中广泛使用的安全机制,它主要用于防止自动化的恶意操作,比如机器人注册、垃圾邮件发送等。这个工具类是用Java语言编写的,因此我们可以深入探讨一下Java验证码生成的相关技术和...

    struts2验证码.pdf

    综上所述,Struts2验证码的实现利用了Java AWT库来生成内存中的图片,结合Struts2框架的流结果类型,实现了动态生成并返回验证码的功能。这种技术提高了网站安全性,防止了自动化脚本的恶意操作,同时通过JavaScript...

    struts2验证码

    Struts2验证码是一种用于增强网站安全性的重要机制,它主要用于防止恶意自动化的机器人或者爬虫程序进行非法操作,比如批量注册、频繁登录等。在本项目中,开发者自定义了一个基于Struts2框架的验证码功能,使得...

    一个简单的struts2验证码

    这些可能包括Struts2的相关库、验证码生成库(如JCaptcha)、以及任何用于开发和调试的IDE或工具。 在"struts2Test"这个压缩包文件中,可能包含了实现上述流程的所有必要文件,如Action类的Java源代码、JSP页面、...

    struts2实现验证码

    我们可以使用一个`&lt;img&gt;`标签来显示验证码图片,图片的src属性指向一个Struts2 Action,该Action负责生成并返回验证码的图片。图片可以通过将验证码字符串转换为像素并绘制到图像上实现。 4. **配置Struts2 Action*...

    struts2生成验证码

    生成验证码图片主要涉及到两个类: 1.SecurityCode.java --- 生成验证码 SecurityCode类中提供的验证码分三个难度,易(全数字)、中(数字+小写英文)、难(数字+大小写英文)。难度使用枚举SecurityCodeLevle表示...

    Struts验证码插件 JCaptcha4Struts2

    Struts验证码插件JCaptcha4Struts2是一个用于增强Web应用程序安全性的工具,它整合了Jcaptcha库,为Struts2框架提供了强大的验证码功能。在Web应用中,验证码是一种防止恶意自动化程序(如机器人)进行非法操作的...

    struts2+spring3验证码登录实例

    在这个"struts2+spring3验证码登录实例"中,验证码功能是一个重要的安全措施,它可以防止恶意的自动登录尝试或机器人攻击。验证码通常由一串随机生成的字符或数字组成,用户需要在输入框中正确输入才能完成登录。...

Global site tag (gtag.js) - Google Analytics