Java 使用Jsp生成验证码(通用)

来源:互联网 发布:snmp网管软件 免费 编辑:程序博客网 时间:2024/06/17 12:15

Java 使用Jsp生成验证码(通用)

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ page import="java.util.Random"%><%@ page import="java.io.OutputStream"%><%@ page import="java.awt.Color"%><%@ page import="java.awt.Font"%><%@ page import="java.awt.Graphics"%><%@ page import="java.awt.image.BufferedImage"%><%@ page import="javax.imageio.ImageIO"%><%//生成验证码int width = 80;int height = 32;//create the imageBufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);Graphics g = image.getGraphics();// 设置背景颜色g.setColor(new Color(0xDCDCDC));g.fillRect(0, 0, width, height);// 绘制边框g.setColor(Color.black);g.drawRect(0, 0, width - 1, height - 1);// 设置随机验证码//toHexString转成16进制数Random rdm = new Random();String hash1 = Integer.toHexString(rdm.nextInt());// 绘制干扰点for (int i = 0; i < 50; i++) {int x = rdm.nextInt(width);int y = rdm.nextInt(height);g.drawOval(x, y, 0, 0);}// 设置随机4位验证码String capstr = hash1.substring(0, 4);session.setAttribute("key", capstr);g.setColor(new Color(0, 100, 0));g.setFont(new Font("Candara", Font.BOLD, 24));g.drawString(capstr, 8, 24);g.dispose();response.setContentType("image/jpeg");out.clear();out = pageContext.pushBody();OutputStream strm = response.getOutputStream();ImageIO.write(image, "jpeg", strm);strm.close();%>

Jsp页面调用

<img id="loginform:vCode" src="${pageContext.request.contextPath }/validatecode.jsp"onclick="javascript:document.getElementById('loginform:vCode').src='${pageContext.request.contextPath }/validatecode.jsp?'+Math.random();" />


使用Java的Graphics类进行绘图的方法详解   点击打开链接


原创粉丝点击