`
chengyu2099
  • 浏览: 459790 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java 生成 验证码

阅读更多
<script type="text/javascript">
	<!--  //验证码
     // 重载验证码  
     function reloadVerifyCode()
     {
     	alert(1);
        var timenow = new Date().getTime();                          
        document.getElementById("safecode").src="<%= path%>/servlet/ImageServlet?d="+timenow;
     }  
	// -->
	</script>  


<li>
					<div class="label">
						<font color="red">*</font>验证码:
					</div>
					<div class="i">
						<input type="text" class="stxt" size="10" id="verifyCode" name="verifyCode"
							style="vertical-align: middle" />
							<img alt="验证码" id="safecode" src="<%=request.getContextPath()%>/servlet/ImageServlet">
							<a href="javascript:reloadVerifyCode();"mce_href="javascript:reloadVerifyCode();">看不清楚</a>
							
					</div>
				</li>



/**
 * ImageServlet.java
 * com.zte.ace.util
 *
 * Function: TODO 
 *
 *   ver     date      		author
 * ──────────────────────────────────
 *   		 Sep 4, 2012 		程仁银
 *
 * Copyright (c) 2012,  All Rights Reserved.
 */

package com.zte.ace.util;

import java.awt.Color;  
import java.awt.Font;  
import java.awt.Graphics;  
import java.awt.image.BufferedImage;  
import java.io.IOException;  
import java.util.Random;  
import javax.imageio.ImageIO;  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse; 

/**
 * ClassName:ImageServlet
 * Project: 
 *
 * @author   程仁银
 * @version  
 * @since    Ver 1.1
 * @Date	 Sep 4, 2012		3:55:07 PM
 * @see 	 
 */
public class ImageServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)

	throws ServletException, IOException {

		this.doPost(request, response);

	}

	// 生成数字和字母的验证码  

	public void doPost(HttpServletRequest request, HttpServletResponse response)

	throws ServletException, IOException {
		System.out.println("#######################生成数字和字母的验证码#######################");
		BufferedImage img = new BufferedImage(68, 22,

		BufferedImage.TYPE_INT_RGB);

		// 得到该图片的绘图对象  

		Graphics g = img.getGraphics();

		Random r = new Random();

		Color c = new Color(200, 150, 255);

		g.setColor(c);

		// 填充整个图片的颜色  

		g.fillRect(0, 0, 68, 22);

		// 向图片中输出数字和字母  

		StringBuffer sb = new StringBuffer();

		char[] ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();

		int index, len = ch.length;

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

			index = r.nextInt(len);

			g.setColor(new Color(r.nextInt(88), r.nextInt(188), r.nextInt

			(255)));

			g.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 22));
			// 输出的  字体和大小                    

			g.drawString("" + ch[index], (i * 15) + 3, 18);
			//写什么数字,在图片 的什么位置画  

			sb.append(ch[index]);

		}

		request.getSession().setAttribute("piccode", sb.toString());

		ImageIO.write(img, "JPG", response.getOutputStream());

	}
}




<!-- 验证码 -->
	<servlet>  
       <servlet-name>ImageServlet</servlet-name>  
       <servlet-class>com.zte.ace.util.ImageServlet</servlet-class>  
	</servlet>  
  
	<servlet-mapping>  
       <servlet-name>ImageServlet</servlet-name>  
       <url-pattern>/servlet/ImageServlet</url-pattern>  
	</servlet-mapping>  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics