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

    package com.xunfang.demo;
    
    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;
    
    /**
     * @title://演示输出验证码
     * @author:阳阳
     * @date: 2015-5-13
     */
    public class ServletResponsw1 extends HttpServlet {
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            //创建图片
            int width =120;
            int height = 30;
            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            //拿到此图片的画笔
            Graphics g = image.getGraphics();
            
            //设定边框
            g.setColor(Color.blue);
            g.drawRect(0, 0, width, height);
            g.setColor(Color.gray);
            g.fillRect(1, 1, width-2, height-2);
            
            //增加干扰圆点
            Random r = new Random();
            g.setColor(Color.green);
            for (int i = 0; i < 100; i++) {
                g.drawOval(1, 1, r.nextInt(width),r.nextInt(height));
            }
            
            //设定中文
            g.setColor(Color.yellow);
            g.setFont(new Font("楷体", Font.BOLD, 1));
            String s = "增加分析验证码的难IHAVEmoney度可以加30条干扰线中国好声音深圳讯方通信技术有限公司刘德华成龙";
    //输出4个字符 StringBuffer sb
    = new StringBuffer(); for (int i = 0; i <4; i++) { char c = s.charAt(r.nextInt(s.length())); sb.append(c); g.drawString(c+"", 20+20*i+r.nextInt(5)*((i%2)==0?1:-1),20+r.nextInt(5)*((i%2)==0?1:-1)); } request.getSession().setAttribute("code", sb.toString()); ImageIO.write(image, "img", response.getOutputStream()); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
  • 相关阅读:
    Android Activity的事件分发机制-源码解析
    Android ViewGroup的事件分发机制-源码分析
    Android View的事件分发机制-源码解析
    Activity中的setContentView(R.layout.xxx)源码分析
    android 6.0动态权限的申请
    java 回行矩阵的打印
    Masonry解析ios屏幕适配
    CollectionsUtil 类
    Request.url请求路径的一些属性
    .net中HttpCookie使用
  • 原文地址:https://www.cnblogs.com/ouysq/p/4501669.html
Copyright © 2011-2022 走看看