struts2+hibernate 实现B2C电子商务网站的登录 、注册中验证码的实现(源码) (二)

2014-11-24 11:36:07 · 作者: · 浏览: 21
ctionContext.getRequest().getSession()
.setAttribute("user", user);
return "login";
}
} else {
ServletActionContext.getRequest().getSession()
.setAttribute("login", "acerror");
return "loginerror";
}

}

public String checkAcodet() {
if (((String) ServletActionContext.getRequest().getSession()
.getAttribute("checkcode")).equalsIgnoreCase(acodet)) {
cacodet = true;
} else {
cacodet = false;
}

return "checkacode";
}




/**
* ****************** * Action生成验证码* ******************
*/
private Font imgFont = new Font("Times New Roman", Font.BOLD, 17);

Color getRandColor(int fc, int bc) {

Random random = new Random();

if (fc > 255) {

fc = 255;

}

if (bc > 255) {

bc = 255;

}

int r = fc + random.nextInt(bc - fc);

int g = fc + random.nextInt(bc - fc);

int b = fc + random.nextInt(bc - fc);

return new Color(r, g, b);

}

public void checkCodeImage() {

HttpServletRequest request = ServletActionContext.getRequest();

HttpServletResponse response = ServletActionContext.getResponse();

response.setHeader("Pragma", "No-cache");

response.setHeader("Cache-Control", "no-cache");

response.setDateHeader("Expires", 0);

response.setContentType("image/jpeg");

int width = 75, height = 20;

BufferedImage image = new BufferedImage(width, height,

BufferedImage.TYPE_INT_RGB);

Graphics g = image.getGraphics();

Random random = new Random();

g.setColor(getRandColor(200, 250));

g.fillRect(1, 1, width - 1, height - 1);

g.setColor(new Color(102, 102, 102));

g.drawRect(0, 0, width - 1, height - 1);

g.setFont(imgFont);

g.setColor(getRandColor(160, 200));

for (int i = 0; i < 155; i++) {

int x = random.nextInt(width - 1);

int y = random.nextInt(height - 1);

int xl = random.nextInt(6) + 1;

int yl = random.nextInt(12) + 1;

g.drawLine(x, y, x + xl, y + yl);

}

for (int i = 0; i < 70; i++) {

int x = random.nextInt(width - 1);

int y = random.nextInt(height - 1);

int xl = random.nextInt(12) + 1;

int yl = random.nextInt(6) + 1;

g.drawLine(x, y, x - xl, y - yl);

}

for (int i = 0; i < 4; i++) {

int itmp = 0;

if (random.nextInt(2) == 1) {

itmp = random.nextInt(26) + 65;

char ctmp = (char) itmp;

sRand += String.valueOf(ctmp);

g.setColor(new Color(20 + random.nextInt(110), 20 + random

.nextInt(110), 20 + random.nextInt(110)));

g.drawString(String.valueOf(ctmp), 15 * i + 10, 16);

} else if (random.nextInt(3) == 1) {

itmp = random.nextInt(26) + 97;

char ctmp = (char) itmp;

sRand += String.valueOf(ctmp);

g.setColor(new Color(20 + random.nextInt(110), 20 + random

.nextInt(110), 20 + random.next