首页 > 代码库 > JSP验证码

JSP验证码

在JSP页面上写随机的4位数验证码

实例化BufferedImage类 得到Graphics画笔给图片填充背景色 然后写上随机数和100个干扰点

用scropt实现刷新验证码

疑问:视频和书上的DrawString 方法不能用 也不知道怎么回事 把String转成了char调用了另外一个drawChars的方法才对

<%@ page language="java" contentType="text/html; charset=GB2312"
	import = "java.awt.image.*"
	import = "java.util.*"
	import = "java.awt.*"
	import = "javax.imageio.*"
	import = "java.lang.*"
	%>
<html>
<head>
</head>
<body>
	<% 
		response.setHeader("Cache-Control", "no-cache");
		BufferedImage image = new BufferedImage(60, 20, BufferedImage.TYPE_INT_RGB); 
		Graphics g = image.getGraphics(); 
		g.setColor(new Color(200, 200, 200));
		g.fillRect(0, 0, 60, 20);
		Random rd = new Random(); 
		int r = rd.nextInt(8999) + 1000; 
		String rand = String.valueOf(r); 
		session.setAttribute("rand", rand); 
		g.setColor(Color.BLACK); 
		g.setFont(new Font("", Font.PLAIN, 20)); 
		g.drawChars(rand.toCharArray(), 0, rand.length(), 10, 17); 
		for(int i = 0; i < 100; i++){ 
			int x = rd.nextInt(60); 
			int y = rd.nextInt(20); 
			g.drawOval(x, y, 1, 1); 
		} 
		ImageIO.write(image, "JPEG", response.getOutputStream());
	 %>
</body>
</html>


 

JSP验证码