javaweb-servlet用java语言写验证码图片

来源:互联网 发布:mac 声音变灰色 编辑:程序博客网 时间:2024/05/08 01:36

package servlet;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.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ImgServlet extends HttpServlet {/**doGet的方法 */public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {int width=150;int height=40;// 1.设置响应的数据类型是图片response.setContentType("image/jpeg");// 2.创建图片BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);// 3.设置背景// 得到画笔Graphics g=image.getGraphics();// 设置画笔的颜色g.setColor(Color.white);// 在颜色的基础上绘制矩形g.fillRect(0, 0, width, height);// 4.绘制边框// 设置边框颜色g.setColor(Color.black);g.drawRect(0, 0, width-2, height-2);// 5.绘制干扰线// 设置画笔颜色g.setColor(Color.blue);// 生成一个随机对象Random r=new Random();for(int i=0;i<4;i++){int x1=r.nextInt(width);int y1=r.nextInt(height);int x2=r.nextInt(width);int y2=r.nextInt(height);// 画线g.drawLine(x1, y1, x2, y2);}// 6.绘制文字String temp="0123456789abcdefghijklmnopqistuvwxyzABCDEFGHIJKLMNOPQISTUVWXYZ";// 获取长度int len=temp.length();String str="";for(int j=0;j<4;j++){int index=r.nextInt(len);str+=temp.charAt(index);// 绘制g.drawString(str, 20, 12);}// 7.把图片显示给浏览器ImageIO.write(image, "jpeg", response.getOutputStream());} /**doPost的方法 */public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}} 


0 0
原创粉丝点击