验证码
来源:互联网 发布:win10打不开任何软件 编辑:程序博客网 时间:2024/06/05 01:55
思路:用Java代码生成一个验证码图片,将其中的随机产生的数据存在session中
<%@page import="javax.imageio.ImageIO"%><%@page import="java.awt.Font"%><%@page import="java.awt.Graphics"%><%@page import="java.awt.image.BufferedImage"%><%@page import="java.awt.Color"%><%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%@ page contentType="image/jpeg"%><%! public Color getColor(){ Random rand = new Random(); int r = rand.nextInt(256); int g = rand.nextInt(256); int b = rand.nextInt(256); return new Color(r,g,b); } public String getNum(){ String str = ""; Random rand = new Random(); for(int i=0;i<4;i++){ str = str+rand.nextInt(10); } return str; } %><% response.setHeader("pragma", "mo-cache"); response.setHeader("cache-control", "no-cache"); response.setDateHeader("expires", 0); BufferedImage image = new BufferedImage(80,30,BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); g.setColor(new Color(200,200,200)); g.fillRect(0,0,80,30); for (int i = 0; i < 30; i++) { Random random = new Random(); int x = random.nextInt(80); int y = random.nextInt(30); int xl = random.nextInt(x+10); int yl = random.nextInt(y+10); g.setColor(getColor()); g.drawLine(x, y, x + xl, y + yl); } g.setFont(new Font("serif", Font.BOLD,16)); g.setColor(Color.BLACK); String checkNum = getNum();//"2525" StringBuffer sb = new StringBuffer(); for(int i=0;i<checkNum.length();i++){ sb.append(checkNum.charAt(i)+" ");//"2 5 2 5" } g.drawString(sb.toString(),15,20); session.setAttribute("CHECKNUM",checkNum);//2525 ImageIO.write(image,"jpeg",response.getOutputStream()); out.clear(); out = pageContext.pushBody(); %>
阅读全文
0 0
- 简单验证码验证
- 验证验证码
- 验证码的验证
- 验证码的验证
- 验证码客户端验证
- java验证码 验证
- 验证码验证模块
- 手机短信验证码验证
- 验证验证码
- 表单验证+验证码
- thinkphp 验证码功能(验证验证码)
- 验证码
- 验证码
- 验证码
- 验证码
- 验证码
- 验证码
- 验证码
- Linux sed
- 如果list中的对像的编号相同就把对像合并,并将数量相加
- jquery根据字符串长度限定,截取字符串
- 【Unet】Unet Network Messages
- C# 获取应用程序物理地址(运行DLL的物理地址)
- 验证码
- 整型规划的凸松弛(Convex Relaxation in Integer Programming)
- HYSBZ
- About android mk parameters
- 进程与线程
- 串口热插拔的实现
- 对动态网页进行逆向工程
- 使用MySQL帮助
- 机器学习的分类