资源简介
http://blog.csdn.net/hacke2/article/details/8215214
代码片段和文件信息
package action;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Map;
import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class ImageAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private ByteArrayInputStream inputStream;
public String creatRandomString() {
String str = ““;
for(int i = 0; i < 4 ; i++) {
str += Integer.toString((new Double(Math.random() * 10)).intValue());
}
return str;
}
public Color createsRandomColor() {
int r = (new Double(Math.random() * 256)).intValue();
int g = (new Double(Math.random() * 256)).intValue();
int b = (new Double(Math.random() * 256)).intValue();
return new Color(r g b);
}
public BufferedImage createImage(String str) {
int width = 60;
int height = 22;
BufferedImage image = new BufferedImage(width height BufferedImage.TYPE_INT_RGB);
//获取图形上下文
Graphics g = image.getGraphics();
//设定背景色
g.setColor(Color.WHITE);
g.fillRect(0 0 width height);
//画边框
g.setColor(Color.black);
g.drawRect(0 0 width - 1 height - 1);
//将认证码显示到图像中
g.setFont(new Font(“Atlantic Inline“ Font.PLAIN 18));
//使用随便颜色
g.setColor(this.createsRandomColor());
//将随机字符串的每个数字分别写到图片上
g.drawString(Character.toString(str.charAt(0)) 8 17);
g.drawString(Character.toString(str.charAt(1)) 20 17);
g.drawString(Character.toString(str.charAt(2)) 33 17);
g.drawString(Character.toString(str.charAt(3)) 45 17);
//图像生效
g.dispose();
return image;
}
//将图片以字节形式写到InputStream里
public ByteArrayInputStream createInuptStream() throws Exception {
//获取随机字符串
String str = this.creatRandomString();
BufferedImage image = this.createImage(str);
//将产生的字符串写入session,供校验时使用;
ActionContext actionContext = ActionContext.getContext();
Map session = actionContext.getSession();
session.put(“random“ str);
ByteArrayOutputStream output = new ByteArrayOutputStream();
ImageOutputStream imageOut = ImageIO.createImageOutputStream(output);
ImageIO.write(image “JPEG“ imageOut);
imageOut.close();
ByteArrayInputStream input = new ByteArrayInputStream(output.toByteArray());
output.close();
return input;
}
@Override
public String execute() throws Exception {
setInputStream(createInuptStream());
return SUCCESS;
}
public ByteArrayInputStream getInputStream() {
return inputStream;
}
public void setInputStream(ByteArrayInputStream inputStream) {
this.inputStream = inputStream;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-11-23 09:50 Struts2login\
文件 1006 2012-11-23 09:50 Struts2login\.classpath
目录 0 2012-11-23 09:50 Struts2login\.myeclipse\
文件 309 2012-11-23 09:50 Struts2login\.myme
文件 1285 2012-11-23 09:50 Struts2login\.project
目录 0 2012-11-23 09:50 Struts2login\SQL\
文件 923 2012-11-23 09:50 Struts2login\SQL\struts 2login.sql
目录 0 2012-11-23 09:50 Struts2login\src\
目录 0 2012-11-23 09:50 Struts2login\src\action\
文件 2900 2012-11-23 09:50 Struts2login\src\action\ImageAction.java
文件 639 2012-11-23 09:50 Struts2login\src\action\LoginAction-validation.xm
文件 1100 2012-11-23 09:50 Struts2login\src\action\LoginAction.java
文件 1739 2012-11-23 09:50 Struts2login\src\action\RegisterAction-validation.xm
文件 2032 2012-11-23 09:50 Struts2login\src\action\RegisterAction.java
目录 0 2012-11-23 09:50 Struts2login\src\biz\
文件 758 2012-11-23 09:50 Struts2login\src\biz\Users.java
目录 0 2012-11-23 09:50 Struts2login\src\dao\
文件 1134 2012-11-23 09:50 Struts2login\src\dao\DbConnection.java
文件 2218 2012-11-23 09:50 Struts2login\src\dao\DbService.java
文件 958 2012-11-23 09:50 Struts2login\src\struts.xm
目录 0 2012-11-23 09:50 Struts2login\WebRoot\
文件 837 2012-11-23 09:50 Struts2login\WebRoot\index.jsp
文件 778 2012-11-23 09:50 Struts2login\WebRoot\login.jsp
文件 416 2012-11-23 09:50 Struts2login\WebRoot\login_success.jsp
目录 0 2012-11-23 09:50 Struts2login\WebRoot\me
文件 36 2012-11-23 09:50 Struts2login\WebRoot\me
文件 2444 2012-11-23 09:50 Struts2login\WebRoot\register.jsp
文件 1178 2012-11-23 09:50 Struts2login\WebRoot\register_success.jsp
目录 0 2012-11-23 09:50 Struts2login\WebRoot\WEB-INF\
目录 0 2012-11-23 09:50 Struts2login\WebRoot\WEB-INF\classes\
目录 0 2012-11-23 09:50 Struts2login\WebRoot\WEB-INF\classes\action\
............此处省略20个文件信息
相关资源
- 作业管理系统设计与实现
- Struts2漏洞检查工具,支持到最新版本
- 简单的网上购物系统
- struts2必备包+json包.rar
- struts2 freemaker exampler
- struts2案例
- 软件工程课设--人事管理系统
- 基于Eclipse ADT 开发的注册登录界面,
- 人脸识别注册登录
- 《Struts in Action中文版》真正完整版
- Struts2拦截器实现权限控制demo
- CD销售管理系统
- 网上商城注册登录模块需求分析以京
- SSM(Eclipse+Struts2+Spring+MyBatis)环境搭
- 基于struts2+hibernate购物广场商务系统
- struts2官方中文帮助文档.chm
- 网上选课系统(源码+详细说明书)
- struts2.18 src
- Ext+Struts2的学生成绩管理系统
- 企业信息管理系统.rar
- Struts2+Hibernate的简单登录功能实现
- 网上图书管理系统struts2+hibernate的课程
- 深入浅出Struts2 中文版
- 病历管理系统设计与实现
- SSM模板已搭建好,解压即用
- Struts2文件动态上传和动态(可自动生
- 教师教学辅助系统开发
- 软件工程课程设计 WEB的网上书店系统
- 工单管理系统源码
- 一个简单的宿舍管理系统
评论
共有 条评论