java ee 验证码_javaee添加验证码

这是一个Java EE的Servlet实现验证码生成的代码示例。通过创建BufferedImage对象并使用Graphics进行绘图,生成彩色背景和随机数字的验证码图像,并将其保存在HttpSession中,防止浏览器缓存。验证码为4位随机整数,大小写不敏感。

packagecom.zh.code;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.image.BufferStrategy;importjava.awt.image.BufferedImage;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.Random;importjavax.imageio.ImageIO;importjavax.jms.Session;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;public class CreateCode extendsHttpServlet {public voiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

response.setContentType("text/html");

response.setHeader("Content", "image/jpeg");//7.禁止浏览器缓存 随机图片

response.setDateHeader("Expires", -1);

response.setHeader("Cache-Control", "no-cache");

response.setHeader("Pragma", "no-cache");//1.创建一个图片的内在 bufferedImage//BufferedImage image=new BufferedImage(80, 30, BufferedImage.TYPE_INT_ARGB);

BufferedImage image=new BufferedImage(50,30, BufferedImage.TYPE_INT_BGR);//

//2.得到image的画笔

Graphics g=image.getGraphics();

g.setColor(Color.CYAN);

g.fillRect(0, 0, 50, 30);//在上面写数字

g.setColor(Color.BLACK);

g.setFont(new Font(null,Font.BOLD,20));

String num=this.getCodeNum();

g.drawString(num,0, 20);//把得到的 验证码存在session中

request.getSession().setAttribute("code", num);//3.图片发送

ImageIO.write(image, "jpg", response.getOutputStream());

}//返回的随机数据字符串

publicString getCodeNum(){

Random randow=newRandom();

String num=randow.nextInt(9999)+"";

StringBuffer stringBuffer=new StringBuffer("");for(int i=0;i<4-num.length();i++){

stringBuffer.append("0");

}

num+=stringBuffer;returnnum;

}/*** The doPost method of the servlet.

*

* This method is called when a form has its tag value method equals to post.

*

*@paramrequest the request send by the client to the server

*@paramresponse the response send by the server to the client

*@throwsServletException if an error occurred

*@throwsIOException if an error occurred*/

public voiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

response.setContentType("text/html");this.doGet(request, response);

}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值