手机
当前位置:查字典教程网 >编程开发 >Java >java生成图片验证码示例程序
java生成图片验证码示例程序
摘要:复制代码代码如下:登陆页面functionrefresh(){loginForm.image.src="creatImage.jsp";}欢...

复制代码 代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>登陆页面</title>

<script type="text/javascript">

function refresh() {

loginForm.image.src = "creatImage.jsp";

}

</script>

</head>

<body>

<h1>欢迎登陆本系统</h1><br>

<form action="" method = "post" name="loginForm">

<label>账号:<input name="username" type="text" /></label><br>

<label>密码:<input name="password" type="password" /></label><br>

<label>验证码:<input name="code" type="text" /></label>

<>

<img name="image" border="0" src="creatImage.jsp" />

<input type="submit" value="登陆" />

</form>

</body>

</html>

复制代码 代码如下:

<%@page import="java.util.Random"%>

<%@page import="java.awt.Graphics"%>

<%@page import="javax.imageio.*"%>

<%@page import="java.awt.*"%>

<%@page import="java.awt.image.BufferedImage"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%

final char[] str = {'0','1','2','3','4','5','6','7','8','9',

'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','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'};

int width=100,height=60;

BufferedImage bi = new BufferedImage(width,height,

BufferedImage.TYPE_INT_RGB);

Graphics g = bi.getGraphics();

g.setColor(new Color(200,200,200));

g.fillRect(0, 0, width, height);

Random rnd = new Random();

StringBuffer sb = new StringBuffer("");

//产生四位数的字母数字验证码,各个数字的颜色也随即

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

int num = rnd.nextInt(str.length);

Color c = new Color(rnd.nextInt(256),

rnd.nextInt(256),rnd.nextInt(256));

g.setColor(c);

g.setFont(new Font("", Font.BOLD+Font.ITALIC, 20));

g.drawString(str[num]+"", 10, 17);

sb.append(str[num]);

}

//划干扰线

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

Color c = new Color(rnd.nextInt(256),

rnd.nextInt(256),rnd.nextInt(256));

g.setColor(c);

g.drawLine(rnd.nextInt(width), rnd.nextInt(height),

rnd.nextInt(width), rnd.nextInt(height));

}

String s = new String(sb);

/*

若是产生四位数字,则nextInt(8999) + 1000;

然后String.valueOf转换为String

*/

//验证码存入session里,方便在登陆校检页比对

session.setAttribute("image",s);

//输出到页面

ImageIO.write(bi,"JPEG",response.getOutputStream());

/*

加入下面这两句什么作用呢?

否则报异常: java.lang.IllegalStateException: getOutputStream()

has already been called for this response

不管原因了

*/

out.clear();

out = pageContext.pushBody();

%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>图片生成</title>

</head>

<body>

</body>

</html>

【java生成图片验证码示例程序】相关文章:

Java用文件流下载网络文件示例代码

Java中的static静态代码块的使用详解

java中的内部类详细总结

java线程并发semaphore类示例

java通过url读取文件内容示例

Java实现随机验证码功能实例代码

java生成压缩文件示例代码

java操作XML实例代码

java中的hashCode方法小例子

在java中使用dom解析xml的示例分析

精品推荐
分类导航