效果图
servlet代码
下面展示一些 内联代码片
。
package webdemo;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 验证码
* @author 白云苍狗
*
*/
@WebServlet("/ckdemo")
public class CheckCodeDemo extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int width=100;
int height=50;
// 创建图片对象
BufferedImage Image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 美化图片
Graphics g = Image.getGraphics();
g.setColor(Color.PINK);
g.fillRect(0, 0, width, height);
g.setColor(Color.BLACK);
g.drawRect(0, 0, width-1, height-1);
g.setColor(Color.BLUE);
String str="QWERTYUIOPLKJHGFDSAZXCVBNMzxcvbnmlkjhgfdsaqwertyuiop012456789";
Random random = new Random();
for(int i=1;i<=4;i++) {
int index=random.nextInt(str.length());
char cr=str.charAt(index);
g.drawString(cr+"", width/5*i, height/2);
}
g.setColor(Color.GREEN);
for(int i=1;i<=10;i++) {
int x1=random.nextInt(width);
int x2=random.nextInt(width);
int y1=random.nextInt(height);
int y2=random.nextInt(height);
g.drawLine(x1, y1, x2, y2);
}
// 将图片输出到页面展示
ImageIO.write(Image, "jpg", response.getOutputStream());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
html代码
下面展示一些 内联代码片
。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<img src="/ckdemo" id="im"/>
<a href="" id="a1">看不清?换一张</a>
</body>
</html>
<script>
var a=document.getElementById("a1");
var img=document.getElementById("im");
a.onclick=function(){
var date=new Date().getTime();
img.src="/ckdemo?"+date;
}
</script>