allobject
2013-01-09 20:46:18
java随机生成图片验证码
随机生成两种类型的验证码
public class CheckcodeServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //step1 创建一个图片,创建一个内存映像对象 BufferedImage image = new BufferedImage(60,20,BufferedImage.TYPE_INT_RGB); //得到画笔 Graphics g = image.getGraphics(); Random r = new Random(); //设置画笔的颜色 g.setColor(new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255))); //设置整个画板的背景颜色 g.fillRect(0,0, 60, 20); //生成一个随机数 //String number = r.nextInt(99999) + ""; String number = getNumber(5); //将number绑订到session对象上。 HttpSession session = request.getSession(); session.setAttribute("number", number); g.setColor(new Color(0,0,0)); g.drawString(number, 5, 15); //加一些干扰线 for(int i=0;i<5;i++){ g.setColor(new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255))); g.drawLine(r.nextInt(60),r.nextInt(20),r.nextInt(60),r.nextInt(20)); } //step2 压缩图片,然后输出 response.setContentType("image/jpeg"); OutputStream output = response.getOutputStream(); javax.imageio.ImageIO.write(image, "jpeg", output); } //随机从"A~Z","0~9"当中取出5个字符 private String getNumber(int length) { Random r = new Random(); char[] chars = {'A','B','C','D','E','F','G', 'H','I','J','K','L','M','N','O','P','Q', 'R','S','T','U','V','W', 'X','Y','Z','0', '1','2','3','4','5','6','7','8','9'}; String number = ""; for(int i=0;i<length;i++){ number += chars[r.nextInt(chars.length)]; } return number; }
由最代码官方编辑于2014-1-23 22:13:06
由AXIN编辑于2014-2-12 18:10:19
猜你喜欢
请下载代码后再发表评论
![最代码相关代码源代码列表](https://static.zuidaima.com/resource/img/heart_ico.png)
![最代码最近下载分享源代码列表](https://static.zuidaima.com/resource/img/heart_ico.png)
blueskyroof LV9
2019年11月26日
zhouyunfei LV3
2019年5月17日
skystory LV11
2019年4月27日
123123zxl LV11
2018年6月25日
罗明飞 LV4
2018年6月22日
Fdaxiong LV1
2018年6月10日
yxw0707 LV3
2018年5月21日
1335203 LV10
2018年2月28日
乞丐哥哥 LV23
2018年2月11日
vipsers森林 LV2
2017年12月5日
![最代码最近浏览分享源代码列表](https://static.zuidaima.com/resource/img/cattle_ico.png)
EFWAGGFAWGR
2023年10月19日
暂无贡献等级
3174233007
2022年12月19日
暂无贡献等级
double_AI LV1
2022年11月12日
wwww11112222
2022年7月19日
暂无贡献等级
芮坎尚 LV1
2022年5月11日
Jeasonchan898 LV2
2022年4月26日
杨豫川 LV12
2022年4月19日
10816599
2021年9月15日
暂无贡献等级
zhaoxu123123 LV10
2021年9月9日
zzy94269664 LV11
2021年3月16日