您的位置:首页 > 其它

【Servlet】生成指定长度随机验证码简化版

2017-07-28 10:43 531 查看
img.java文件:
package test;

import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class img extends HttpServlet {
private static final long serialVersionUID = -3703013493165293682L;

@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("image/png");

final int MAXLENGTH=6;//验证码最大长度

//在内存中创建一个图片
BufferedImage image=new BufferedImage(100, 30, BufferedImage.TYPE_INT_RGB);
//创建一个随机数
String number="";
Random r =new Random();
for (int i=0;i<MAXLENGTH;i++){
number+=r.nextInt(10);
}
//获得画笔
Graphics g=image.getGraphics();

//设置字体
g.setFont(new Font("华文新魏", Font.BOLD, 16));

//往图片上加文字
g.drawString(number, 20, 20);

//将验证码文字保存到Session
request.getSession().setAttribute("verifyCode", number);

//获得输出流
OutputStream os=response.getOutputStream();

//输出图片到网页
ImageIO.write(image, "png", os);

//关流
os.close();
}

}
HTML内容:
<img src="imgAction" onclick="this.src='imgAction?'+Math.random();" >

WEB.XML配置

<servlet>
<servlet-name>img</servlet-name>
<servlet-class>test.img</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>img</servlet-name>
<url-pattern>/imgAction</url-pattern>
</servlet-mapping>


效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: