六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 31|回复: 0

验证码(二)

[复制链接]

升级  44%

30

主题

30

主题

30

主题

秀才

Rank: 2

积分
116
 楼主| 发表于 2013-1-15 02:42:12 | 显示全部楼层 |阅读模式
image.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%><%@page import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"%><%@page import="java.io.OutputStream"%><%!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);}%><%try {response.setHeader("Pragma", "No-cache");response.setHeader("Cache-Control", "no-cache");response.setDateHeader("Expires", 0);int width = 60, height = 20;BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);OutputStream os = response.getOutputStream();Graphics g = image.getGraphics();Random random = new Random();g.setColor(getRandColor(200, 250));g.fillRect(0, 0, width, height);g.setFont(new Font("Times New Roman", Font.PLAIN, 18));g.setColor(getRandColor(160, 200));for (int i = 0; i < 155; i++) {int x = random.nextInt(width);int y = random.nextInt(height);int xl = random.nextInt(12);int yl = random.nextInt(12);g.drawLine(x, y, x + xl, y + yl);}String sRand = "";for (int i = 0; i < 4; i++) {String rand = String.valueOf(random.nextInt(10));sRand += rand;g.setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110)));g.drawString(rand, 13 * i + 6, 16);}session.setAttribute("rand", sRand);// 验证码 加入Sessiong.dispose();ImageIO.write(image, "JPEG", os);os.flush();os.close();os = null;//response.flushBuffer();out.clear();out = pageContext.pushBody();} catch (IllegalStateException e) {System.out.println(e.getMessage());e.printStackTrace();}%>

login.jsp
<td class="LoginLabel">验证码:<td><h:inputText id="vcode" styleClass="inputValidate"tabindex="3" required="true" size="8" style="ime-mode:disabled" requiredMessage="*" validatorMessage="验证码不能为空"></h:inputText><h:graphicImage id="rand" url="image.jsp" alt="验证码"styleClass="validateImg" /></td><td><span style="color: #ffffff; font-size: 12px;          cursor: pointer;">看不清楚,<br />更换一张!</span></td>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表