资源简介
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个文件信息
相关资源
- 学生管理系统的添加、修改、删除、
- 基于MVC模式的校园BBS系统的设计与实
- 基于J2EE物资出入库管理系统
- Library图书馆图书管理系统
- springboot+mybatis整合实现注册登录
- Spring+Struts2+Mybatis的一个增删改查的
- Struts2与Ueditor整合SSH+Ueditor
- Struts2漏洞检查工具2018版 V2.1.exe16981
- 登录页的验证码
- 简易的新闻发布系统简易的新闻发布
- Struts2表单标签使用范例
- Struts2+Hiberntate+Spring档案管理系统数据
- spring+struts2+mybatis三大框架集成实现用
- 基于Hibernate与Struts2框架的整合项目之
- 网络书城模板
- 基于springboot框架的宿舍管理系统设计
- 毕业设计-基于struts汽车租赁管理系统
- struts2自定义类型转换器
- 物联网,WEBSOCKET丰富案例
- struts2实现用户登录注册
- 标准struts2和mvc写的用户管理
- 宠物商店系统设计
- 使用struts2技术,实现登录功能不连接
- 使用Struts2框架完成一个简单的留言板
- 学科竞赛系统
- Struts2增删改查(完整项目版+源码+数
- 计算机毕业设计的外文翻译附外文原
- CKEditor实现图片上传(使用Struts2)
- e拍在线拍卖系统完整源代码及数据库
- 传智书城项目页面.rar
评论
共有 条评论