java Servlet 生成随机验证码

来源:互联网 发布:初高中教学网络直播 编辑:程序博客网 时间:2024/05/20 13:11

生成随机验证码

java代码:

package day5;import java.awt.Color;import java.awt.Font;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 ResponseDemo4 extends HttpServlet {private static int WIDTH = 120;private static int HEIGHT = 20;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//不要缓存response.setHeader("Expires", "-1");response.setHeader("Cache-Control", "no-cache");response.setHeader("Pragma", "no-cache");// 生成随机验证码图片 BufferedImage// 1、创建一个内存图片,并设置长和高BufferedImage image = new BufferedImage(WIDTH, HEIGHT,BufferedImage.TYPE_INT_RGB);// 2、 得到该图像的画笔Graphics g = image.getGraphics();// 2.1、 画边框g.setColor(Color.BLUE);g.drawRect(0, 0, WIDTH - 1, HEIGHT - 1);// 2.2、画背景颜色g.setColor(Color.GRAY);g.fillRect(1, 1, WIDTH - 2, HEIGHT - 2);// 2.3、画干扰线g.setColor(Color.YELLOW);Random r = new Random();for (int i = 0; i < 5; i++) {g.drawLine(r.nextInt(WIDTH), r.nextInt(HEIGHT), r.nextInt(WIDTH),r.nextInt(HEIGHT));}// 2.4、画验证数字g.setFont(new Font("宋体", Font.BOLD, 20));g.setColor(Color.RED);int x = 5;for (int i = 0; i < 4; i++) {g.drawString(r.nextInt(9) + "", x, 15);x = x + 30;}// 3、 输出response的输出流中ImageIO.write(image, "jpeg", response.getOutputStream());}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}}

jsp核心代码:

<body><form action="" method="post">用户名:<input type="text" name="username" value="" /><br /> 密码:<inputtype="password" name="password" value="" /><br /> 验证码:<inputtype="text" name="code" value="" /><img id="code"src="/day5/servlet/ResponseDemo4" /><br /> <ahref="javascript:change()">看不清</a></form><script type="text/javascript">function change(){var imgObj=document.getElementById("code");imgObj.src="/day5/servlet/ResponseDemo4?"+new Date().getTime();}</script></body>


0 0