引用自:http://blog.csdn.net/bill600/archive/2010/10/03/5919944.aspx
package com.image;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Map;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class Image extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
public void makeImage() throws Exception{
Map<String, Object> session = ActionContext.getContext().getSession();
HttpServletResponse res = ServletActionContext.getResponse();
BufferedImage img = new BufferedImage(68, 22,
BufferedImage.TYPE_INT_RGB);
// 得到该图片的绘图对象
Graphics g = img.getGraphics();
Random r = new Random();
Color c = new Color(200, 150, 255);
g.setColor(c);
// 填充整个图片的颜色
g.fillRect(0, 0, 68, 22);
// 向图片中输出数字和字母
StringBuffer sb = new StringBuffer();
char[] ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();
int index, len = ch.length;
for (int i = 0; i < 4; i++) {
index = r.nextInt(len);
g.setColor(new Color(r.nextInt(88), r.nextInt(188), r.nextInt(255)));
g.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 22));// 输出的字体和大小
g.drawString("" + ch[index], (i * 15) + 3, 18);// 写什么数字,在图片的什么位置画
sb.append(ch[index]);
}
session.put("piccode", sb.toString());
ImageIO.write(img, "JPG", res.getOutputStream());
}
配置文件:
<action name="image" class="com.image.Image" method="makeImage"></action>
}
分享到:
相关推荐
在Struts2框架下实现验证码功能,可以帮助提升用户体验和系统安全性。以下将详细讲解如何在Struts2中创建前端注册验证码。 首先,验证码的实现通常包括两个主要部分:后端生成验证码和前端展示及验证。 1. **后端...
"最新的struts2验证码.rar"很可能包含了有关如何在Struts2框架下实现验证码功能的示例代码或配置文件。 Struts2验证码的实现通常涉及到以下几个关键知识点: 1. **验证码生成**:验证码通常由随机生成的一串字符或...
在这个特定的案例中,我们关注的是"一个简单的Struts2验证码",这通常涉及到在用户交互过程中增加安全性,防止机器人或自动化程序进行恶意操作,如频繁提交表单或注册。 验证码的主要目的是验证用户是人类而非自动...
### Struts2 生成验证码知识点解析 #### 一、引言 在Web应用程序开发中,验证码是一种常见的安全机制,用于防止自动化的恶意攻击,如垃圾邮件发送或非法登录尝试等。Struts2作为一款流行的Java Web应用框架,支持...
2. **配置Struts2**:在Struts2的配置文件(struts.xml)中,我们需要定义一个Action,这个Action将负责生成验证码。Action应该有一个结果类型,指向一个JSP页面或者FreeMarker模板,用于显示验证码图片。 3. **...
2. **显示验证码**:在用户请求登录或其他需要验证码的页面时,将验证码通过JSP页面显示出来。通常我们会使用图片来展示验证码,这样可以避免被自动化脚本直接读取。生成验证码图片的方法是将字符串转换为像素颜色,...
这个插件结合了Struts2框架和JCaptcha库,为Struts2应用提供了一种简单而有效的验证码集成解决方案。 首先,我们来了解下Struts2。Struts2是Apache软件基金会的一个开源项目,它是一个用于构建企业级Web应用的MVC...
### Struts2 下实现图片验证码的关键技术点 #### 一、引言 在现代Web应用中,验证码(CAPTCHA)是一种常见的用户验证机制,用于区分真实用户与自动化软件(如爬虫)。Struts2框架因其丰富的插件支持及灵活性,在...
《Struts2环境下的Jcaptcha4Struts2验证码组件详解》 在Web开发中,验证码是一种常见的安全机制,用于防止自动化的恶意攻击,如机器人填写表单或进行非法操作。Struts2作为Java Web开发中广泛应用的MVC框架,与...
Struts2是一个流行的Java ...总结来说,这个Struts2验证码程序的实现涉及到前端JavaScript交互、后台Java类的图像生成和Struts2的Action处理。它展示了如何结合多种技术来提供安全的用户体验,防止自动化的恶意活动。
Struts验证码简单实用的小demo是基于Struts框架实现的一个用于网页身份验证的示例项目。在Web开发中,验证码是一种防止恶意自动程序(如机器人)滥用服务的有效手段,它要求用户在提交表单时输入显示在页面上的随机...
在本项目中,“仿CSDN样式(Struts2中文验证码源代码)”是为了实现类似CSDN登录页面的中文验证码功能,这在防止恶意机器人自动登录或注册时非常有用。 验证码的主要作用是验证用户是否为真人,通过显示一组随机生成...
在本案例中,“成功的验证码案例-----struts验证码demo”是一个基于Struts框架实现的简单易懂的验证码应用。Struts是Java EE平台上的一款开源MVC框架,它为构建Web应用程序提供了强大的结构支持。 首先,我们来理解...
这篇名为"将验证码代码应用于Struts2框架"的博客文章,可能详细介绍了如何在Struts2项目中集成验证码功能。通常,这个过程包括以下几个步骤: 1. **生成验证码**: 首先,我们需要一个验证码生成器。这可以是一个...
同时,Struts2的ValueStack和OGNL(Object-Graph Navigation Language)表达式语言使得数据绑定和视图渲染变得简单高效。 行程管理功能可能涉及对用户行程的创建、查看、修改和删除。Struts2支持多种数据源,如...
JCaptcha4Struts2 是一个专门为Struts2框架集成JCaptcha验证码服务的插件。JCaptcha本身是一种强大的、可自定义的图像验证码库,旨在防止自动机器人和恶意软件对网站进行非法操作。在Struts2项目中添加JCaptcha验证...
Struts2的拦截器机制使得添加全局或特定操作的逻辑变得简单,同时提供了一套强大的结果类型和国际化支持。 2. Hibernate持久化框架:Hibernate是Java领域中的一款ORM(对象关系映射)框架,用于简化数据库操作。它...
本实例将探讨如何使用简单的Servlet生成加法验证码,并将其整合到Struts2、SSH2(Spring、Struts2、Hibernate)和Mybatis等流行框架中。这个实践教程将帮助开发者了解验证码的基本实现以及与主流框架的集成。 首先...
Struts2是一个强大的MVC(Model-View-Controller)框架,广泛...实际开发中,登录功能会涉及到更复杂的验证和安全考虑,如密码加密、验证码、记住我功能等,但这个基础实例足以帮助初学者理解Struts2的基本工作流程。
本项目"struts2简单登录"是基于Struts2框架实现的一个基础登录系统,它采用DAO(数据访问对象)模式来处理数据持久层操作。 在Struts2中,核心概念包括Action、Result和Interceptor。Action是业务逻辑的载体,它...