Java EE登陆界面生成随机数防止恶意注册或者登录

来源:互联网 发布:照片排版软件 专业 编辑:程序博客网 时间:2024/05/17 22:10
  1. package cn.com;  
  2.   
  3.   
  4. import java.awt.Color;  
  5. import java.awt.Font;  
  6. import java.awt.Graphics;  
  7. import java.awt.Graphics2D;  
  8. import java.awt.image.BufferedImage;  
  9. import java.io.IOException;  
  10. import java.util.Random;  
  11.   
  12. import javax.imageio.ImageIO;  
  13. import javax.servlet.ServletException;  
  14. import javax.servlet.http.HttpServlet;  
  15. import javax.servlet.http.HttpServletRequest;  
  16. import javax.servlet.http.HttpServletResponse;  
  17.   
  18. public class ResponseDemoRandom extends HttpServlet {  
  19.     private static final long serialVersionUID = 1L;  
  20.     public static final int WIDTH=120;  
  21.     public static final int HEIGHT=25;  
  22.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  23.         BufferedImage image=new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);  
  24.         Graphics g=image.getGraphics();  
  25.         //设置背景色  
  26.         setBackGround(g);  
  27.           
  28.         //设置边框  
  29.         setBorder(g);  
  30.           
  31.         //画干扰线  
  32.         drawRandomLine(g);  
  33.           
  34.         //写随机数  
  35.         drawRandomNum((Graphics2D)g);  
  36.           
  37.         response.setContentType("image/jpeg");  
  38.         response.setDateHeader("expries", -1);  
  39.         response.setHeader("Cache-Control""no-control");  
  40.         response.setHeader("prama""no-control");  
  41.         ImageIO.write(image, "jpg", response.getOutputStream());  
  42.     }  
  43.   
  44.     private void drawRandomNum(Graphics2D g) {  
  45.         g.setColor(Color.PINK);  
  46.         g.setFont(new Font("宋体",Font.BOLD,20));  
  47.         int x=10;  
  48.         for(int i=0;i<4;i++)  
  49.         {  
  50.             int degree=new Random().nextInt()%30;  
  51.             int num=new Random().nextInt(9);  
  52.             String str=num+"";  
  53.             g.rotate(degree*Math.PI/180, x, 20);  
  54.             g.drawString(str, x, 20);  
  55.             g.rotate(-degree*Math.PI/180, x, 20);  
  56.             x+=30;  
  57.         }  
  58.           
  59.     }  
  60.   
  61.     private void drawRandomLine(Graphics g) {  
  62.         g.setColor(Color.blue);  
  63.         for(int i=0;i<5;i++)  
  64.         {  
  65.             int x1=new Random().nextInt(WIDTH-4)+2;  
  66.             int y1=new Random().nextInt(HEIGHT-4)+2;  
  67.               
  68.             int x2=new Random().nextInt(WIDTH-2);  
  69.             int y2=new Random().nextInt(HEIGHT-2);  
  70.               
  71.             g.drawLine(x1, y1, x2, y2);  
  72.               
  73.         }  
  74.           
  75.     }  
  76.   
  77.     private void setBorder(Graphics g) {  
  78.         g.setColor(Color.GREEN);  
  79.         g.drawRect(11, WIDTH-2, HEIGHT-2);  
  80.     }  
  81.   
  82.     private void setBackGround(Graphics g) {  
  83.         g.setColor(Color.gray);  
  84.         g.fillRect(00, WIDTH, HEIGHT);  
  85.     }  
  86.   
  87.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  88.         doGet(request,response);  
  89.     }  
  90.   

0 0
原创粉丝点击