zoukankan      html  css  js  c++  java
  • servlet实现验证码

    Image.java
     1 package org.tools;
     2 import java.awt.Color;
     3 import java.awt.Font;
     4 import java.awt.Graphics;
     5 import java.awt.image.BufferedImage;
     6 import java.util.Random;
     7 
     8 public class Image {
     9     private BufferedImage image;
    10     private String num;
    11     private Image(){}
    12     public BufferedImage getImage() {
    13         return image;
    14     }
    15     public void setImage(BufferedImage image) {
    16         this.image = image;
    17     }
    18     public String getNum() {
    19         return num;
    20     }
    21     public void setNum(String num) {
    22         this.num = num;
    23     }
    24     public static Image getnewImage(){
    25         int width=75,height=20;
    26         Random rand=new Random();
    27         Image image=new Image();
    28         BufferedImage bim=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
    29         Graphics graph=bim.getGraphics();
    30         graph.setFont(new Font("宋体", Font.PLAIN, 18));
    31         graph.setColor(new Color(200,240,rand.nextInt(rand.nextInt(250-20)+20)));
    32         graph.fillRect(0, 0, width, height);
    33         
    34         String text="";
    35         for(int i=1;i<5;i++){
    36             String pint="";
    37             int n=rand.nextInt(91);
    38             if(n>=65){
    39                 text+=((char)n);
    40                 pint=(char)n+"";
    41             }else{
    42                 n=rand.nextInt(10);
    43                 text+=n;
    44                 pint=n+"";
    45             }
    46             graph.setColor(new Color(20+rand.nextInt(110),20+rand.nextInt(110),20+rand.nextInt(110)));
    47             graph.drawString(pint, 15*i, 15);
    48         }
    49         graph.dispose();
    50         
    51         image.setImage(bim);
    52         image.setNum(text);
    53         return image;
    54     }
    55 }
    CheckNum.java
     1 package org.tools;
     2 
     3 import java.io.IOException;
     4 
     5 import javax.imageio.ImageIO;
     6 import javax.servlet.ServletException;
     7 import javax.servlet.http.HttpServlet;
     8 import javax.servlet.http.HttpServletRequest;
     9 import javax.servlet.http.HttpServletResponse;
    10 
    11 @SuppressWarnings("serial")
    12 public class CheckNumServlet extends HttpServlet {
    13 
    14     public void doGet(HttpServletRequest request, HttpServletResponse response)
    15             throws ServletException, IOException {
    16         this.doPost(request, response);
    17     }
    18 
    19     public void doPost(HttpServletRequest request, HttpServletResponse response)
    20             throws ServletException, IOException {
    21         Image image=Image.getnewImage();
    22         request.getSession().setAttribute("checkNum", image.getNum());
    23         ImageIO.write(image.getImage(), "JPEG", response.getOutputStream());
    24     }
    25 
    26 }
    web.xml
    1   <servlet>
    2     <servlet-name>CheckNumServlet</servlet-name>
    3     <servlet-class>org.tools.CheckNumServlet</servlet-class>
    4   </servlet>
    5 
    6   <servlet-mapping>
    7     <servlet-name>CheckNumServlet</servlet-name>
    8     <url-pattern>/CheckNumServlet</url-pattern>
    9   </servlet-mapping>
    <img src="CheckNumServlet">


     

  • 相关阅读:
    使用Netcat实现通信和反弹Shell
    PentesterLab----xss
    nmap实验
    xssgame20关
    使内网服务器访问外网
    lcx端口转发
    提权
    Nmap使用及常见的参数选项
    kali渗透metasploitable靶机
    我待Django如初恋(✪ω✪)的第一天💗
  • 原文地址:https://www.cnblogs.com/Laupaul/p/2443952.html
Copyright © 2011-2022 走看看