简单输出随机验证码图片

1. 创建一个servlet

 1 package ztq.servlet.study;
 2
 3 import java.awt.Color;
 4 import java.awt.Font;
 5 import java.awt.Graphics;
 6 import java.awt.image.BufferedImage;
 7 import java.io.IOException;
 8 import java.util.Random;
 9
10 import javax.imageio.ImageIO;
11 import javax.servlet.ServletException;
12 import javax.servlet.http.HttpServlet;
13 import javax.servlet.http.HttpServletRequest;
14 import javax.servlet.http.HttpServletResponse;
15
16 public class ServletDemo1 extends HttpServlet {
17     public void doGet(HttpServletRequest request, HttpServletResponse response)
18             throws ServletException, IOException {
19         //通知浏览器不要缓存
20         response.setHeader("Expires", "-1");
21         response.setHeader("Cache-Control", "no-cache");
22         response.setHeader("Pragma", "no-cache");
23
24         int width = 120;
25         int height = 25;
26         //创建一副内存图像
27         BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
28
29         //得到属于该图像的画笔
30         Graphics g = bi.getGraphics();
31
32         //画边框
33         g.setColor(Color.BLACK);
34         g.drawRect(0, 0, width, height);
35
36         //填充背景色
37         g.setColor(Color.GRAY);
38         g.fillRect(1, 1, width - 2, height - 2);
39
40         //画随机干扰线
41         g.setColor(Color.GREEN);
42         Random r = new Random();
43         for(int i = 0; i < 10; i++){
44             g.drawLine(r.nextInt(width), r.nextInt(height), r.nextInt(width), r.nextInt(height));
45         }
46
47         //画随机数字
48         g.setColor(Color.RED);
49         g.setFont(new Font("宋体", Font.BOLD|Font.ITALIC, 20));
50         int x = 23;
51         for(int i = 0; i < 4; i++){
52             g.drawString(r.nextInt(10) + "", x, 20);
53             x += 20;
54         }
55
56         //输出到浏览器的页面上
57         ImageIO.write(bi, "jpg", response.getOutputStream());
58
59     }
60     public void doPost(HttpServletRequest request, HttpServletResponse response)
61             throws ServletException, IOException {
62         doGet(request, response);
63     }
64 }

2. 创建一个Html页面

 1 <!DOCTYPE html>
 2 <html>
 3   <head>
 4     <title>登录</title>
 5
 6     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 7     <meta http-equiv="description" content="this is my page">
 8     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 9
10     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
11
12   </head>
13
14   <body>
15       <form action = "" method = "post">
16         用户名:<input type = "text" name = "username" /><br /><br />
17         密码: <input type = "password" name = "password" /><br /><br />
18         验证码:<input type = "text" name = "code" />
19         <img src = "/JavaWeb_Servlet_Study/servlet/ServletDemo1">
20         <a href = "javascript:toRefresh()">看不清</a><br /><br />
21         <input type = "submit" value = "登录" />
22     </form>
23     <script type = "text/javascript">
24         function toRefresh(){
25             document.location.href = "login.html";
26         }
27     </script>
28   </body>
29 </html>
时间: 2024-08-06 20:07:56

简单输出随机验证码图片的相关文章

输出随机验证码图片

1 /** 2 * //输出随机验证码图片:CAPTCHA图像 3 */ 4 public class ServletDemo1 extends HttpServlet { 5 private static final long serialVersionUID = 1L; 6 7 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOEx

struts2生成随机验证码图片

之前想做一个随机验证码的功能,自己也搜索了一下别人写的代码,然后自己重新用struts2实现了一下,现在将我自己实现代码贴出来!大家有什么意见都可以指出来! 首先是生成随机验证码图片的action: CreateImageAction: package com.xiaoluo.action; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedIm

生成随机验证码图片的工具类

package utils; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.io.ByteArrayOutpu

python模块之PIL模块(生成随机验证码图片)

PIL简介 什么是PIL PIL:是Python Image Library的缩写,图像处理的模块.主要的类包括Image,ImageFont,ImageDraw,ImageFilter PIL的导入 首先需要安装一下pillow包 pip install pillow 然后就可以调用PIL里的类了 from PIL import Image from PIL import ImageFont from PIL import ImageDraw from PIL import ImageFilt

生成的随机验证码图片放入input text中

css:  56px是图片的width,57px(图片长度+input的border) #img{  position:absolute; width:56px;margin-left: calc(100% - -57px); bottom:0} html:javascript:GetCodes()是刷新验证码的方法 <div class="field"> <input type="text" id="Verfication"

.net生成随机验证码图片

/// <summary> /// 自定义图片验证码函数 /// 该函数将生成一个图片验证码,并将生成的code存放于Session["VerifyCode"]变量内. /// </summary> /// <param name="codeLength">验证码长度</param> /// <param name="codeFontsize">字体大小</param> //

编写一个简单的随机验证码程序

简单模拟网页的随机数字验证码,效果图如下: html代码: 1 <div id="content"> 2 <div class="left"> 3 <input type="text" class="txt" id="in"> 4 </div> 5 <div class="right"> 6 <span id="

输出随机认证图片

<!---首先需要用到BufferedImage在内存中构建一张图片-----> BufferedImage img = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); <!-----最后一个参数表示一个图像,它具有合成整数像素的 8 位 RGB 颜色分量-----> <!---往图片上写需要用到Graphics,相当于一个画笔-----> Graphics g = img.getGraphic

java生成简单验证码图片

概要 最近项目需要用java实现输出随机验证码图片到前台,正好有机会接触下java的绘图类,完成需求后也有时间做个总结,写篇随笔记录下也希望能帮助到有同样需求的人! 需求流程图 1.生成随机数 在java中生成随机数无非就是调用Random的api,但为了后续更好的实用,应该分成多种组合以适应需求的变化,应将生成随机数的个数和类型组合还有排除字符抽取成参数,这个也比较简单,没有什么难度,就直接贴上代码 1 /** 2 * 生成随机验证码 3 * @param type 类型 4 * @param