1. package com.serv;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.image.BufferedImage;
  6. import java.io.IOException;
  7. import java.util.Random;
  8.  
  9. import javax.imageio.ImageIO;
  10. import javax.servlet.ServletException;
  11. import javax.servlet.ServletOutputStream;
  12. import javax.servlet.annotation.WebServlet;
  13. import javax.servlet.http.HttpServlet;
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16. @WebServlet(urlPatterns={"/Servyzm"})
  17. public class Servyzm extends HttpServlet {
  18.  
  19. @Override
  20. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  21. throws ServletException, IOException {
  22. // TODO 自动生成的方法存根
  23. doPost(req, resp);
  24. }
  25. @Override
  26. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  27. throws ServletException, IOException {
  28. // TODO 自动生成的方法存根
  29. Random r = new Random();
  30. //创建图片缓冲流
  31. BufferedImage buf = new BufferedImage(70, 25, BufferedImage.TYPE_INT_RGB);
  32. Graphics g = buf.getGraphics();//获取图片的画布对象
  33. g.fillRect(0, 0, 70,25);//从左上角开始(0,0)坐标开始填充白色,宽70,高25
  34. g.setColor(new Color(150,150,150));//指定的是显示的字体的颜色
  35. String str = r.nextInt(9000)+1000+"";
  36. g.drawString(str, 20, 20);// drawString(String str, int x, int y)str指的是输出的文本;x,y指的是距离左上角的位置
  37. for (int i = 0; i < 8; i++) {
  38. int startx = r.nextInt(120);
  39. int starty = r.nextInt(30);
  40. g.setColor(new Color(startx, 232, starty));
  41. g.drawLine(startx, starty, startx + 10, starty + 10);
  42. }
  43. ServletOutputStream out = resp.getOutputStream();// 获取字节流
  44. ImageIO.write(buf, "jpg", out);
  45. }
  46. // public static int getString(){
  47. //
  48. // }
  49. }

运行截图:

javaweb-servlet生成简单的验证码的更多相关文章

  1. 学习笔记:利用GDI+生成简单的验证码图片

    学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...

  2. javaweb servlet jsp简单笔记

    第二章: 1: web 俗称 : 万维网  www 2: web开发 的三大核心: HTML(网页) ,URL(定位),HTTP:(协议) 页面的分类: 静态页面: html+css 动态页面:jsp ...

  3. JavaScript生成简单数字验证码

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  4. python生成简单的验证码

    #coding=utf-8 from PIL import Image, ImageDraw, ImageFont, ImageFilter import random # 随机字母: def rnd ...

  5. javaWeb学习总结(3)- 通过Servlet生成验证码图片(2)

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  6. 转: 通过Servlet生成验证码图片

    孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(九)—— 通过Servlet生成验证码图片 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedIma ...

  7. java web 学习九(通过servlet生成验证码图片)

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  8. Python 常用模块系列学习(1)--random模块常用function总结--简单应用--验证码生成

    random模块--random是一个生成器 首先: import random    #导入模块 print (help(random))    #打印random模块帮助信息 常用function ...

  9. Python简单的验证码生成

    用python生成简单的四位数验证码: 1 import random 2 3 if __name__ == "__main__": #这句话简单的理解就是,只有在本文件下以下的代 ...

随机推荐

  1. The specified named connection is either not found in the configuration, not intended to be used

    今天用EF遇到一个问题, The specified named connection is either not found in the configuration, not intended t ...

  2. ceph安装对象网关

    1.概述 安装3个网关节点分别是:controller-03.controller-04和controller-05,使用ceph gw自带的Civetweb提供服务,前端使用nginx作为前端代理. ...

  3. 同时安装Python2与Python3,安装第三方包,老是报错

    同时安装Python2与Python3,安装第三方包,老是报错提示Fatal error in launcher: Unable to create process using '"',那可 ...

  4. Linux命令总结_sort排序命令

    1.sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件]       补充说明:sort可针对文本文件的内容,以行为单位 ...

  5. [PE182]RSA encryption

    https://projecteuler.net/problem=182 题意: 找出满足下列条件的所有$e$ 的和, - $1 < e < \varphi \left( {1009,36 ...

  6. 关于SetTimer间隔小于OmTimer执行时间的问题

    如果SetTimer的时间间隔为t,其响应事件OnTimer代码执行一遍的时间为T,且T>t.这样,一次未执行完毕,下一次定时到,这时候程序会如何执行? 可能的情况:1.丢弃还未执行的代码,开始 ...

  7. Obama&nbsp;unveils&nbsp;his&amp;nbsp…

    LAS VEGAS - Declaring that America's immigration system is broken, President Obama on Tuesday called ...

  8. 《Java多线程编程核心技术》读后感(十六)

    线程组 线程组的作用是,可以批量的管理线程或线程组对象,有效地对线程或线程组对象进行组织 线程对象关联线程组:1级关联 package Seven; public class ThreadA exte ...

  9. UVaLive 7637 Balanced String (构造)

    题意:给定一个括号的序列,原先的序列是碰到左括号加1,碰到右括号减1,然后把序列打乱,让你找出字典序最小的一个答案. 析:直接从第一个括号判断就好了,优先判断左括号,如果不行就加右括号. 代码如下: ...

  10. UVa 11404 Palindromic Subsequence (LCS)

    题意:给定一个字符串,问删除一些字符,使得它成为一个最长回访串,如果有多个,输出字典序最小的那个. 析: 我们可以把原字符串反转,然后求两个串的LCS,就得到最长回文串,不过要注意一些细节. 代码如下 ...