资源简介

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\.mymetadata
     文件        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.xml
     文件        1100  2012-11-23 09:50  Struts2login\src\action\LoginAction.java
     文件        1739  2012-11-23 09:50  Struts2login\src\action\RegisterAction-validation.xml
     文件        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.xml
     目录           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\meta-INF\
     文件          36  2012-11-23 09:50  Struts2login\WebRoot\meta-INF\MANIFEST.MF
     文件        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个文件信息

评论

共有 条评论