网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > J2EE > Servlet/Jsp > 用servlet生成验证码  

用servlet生成验证码

2008-07-16  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

        package com.work.core.image;

中国网管论坛bbs.bitsCN.com

 

网管下载dl.bitscn.com

    import java.awt.Color; 中国网管论坛bbs.bitsCN.com

    import java.awt.Font; 网管论坛bbs_bitsCN_com

    import java.awt.Graphics;

网管论坛bbs_bitsCN_com

    import java.awt.image.BufferedImage;

中国网管论坛bbs.bitsCN.com

    import java.io.IOException;

网管联盟bitsCN_com

    import java.util.Random; 网管网www.bitscn.com

  网管下载dl.bitscn.com

    import javax.imageio.ImageIO;

网管u家u.bitsCN.com

    import javax.servlet.ServletException;

网管u家u.bitsCN.com

    import javax.servlet.http.HttpServlet;

网管论坛bbs_bitsCN_com

    import javax.servlet.http.HttpServletRequest;

网管u家u.bitsCN.com

    import javax.servlet.http.HttpServletResponse;

网管下载dl.bitscn.com

    import javax.servlet.http.HttpSession;

网管联盟bitsCN_com

 

网管u家u.bitscn@com

    import org.apache.commons.logging.Log; 网管bitscn_com

    import org.apache.commons.logging.LogFactory;

网管联盟bitsCN_com

 

中国网管论坛bbs.bitsCN.com

    /** 网管论坛bbs_bitsCN_com

     * @author wangmj 中国网管论坛bbs.bitsCN.com

     * 生成随机的验证码!防止暴利破解。 网管u家u.bitscn@com

     */

网管网www_bitscn_com

    public class AuthImage extends HttpServlet {

网管u家u.bitscn@com

        private static Log log = LogFactory.getLog(AuthImage.class);

中国网管论坛bbs.bitsCN.com

        /** 网管网www_bitscn_com

         *

中国网管论坛bbs.bitsCN.com

         */

中国网管论坛bbs.bitsCN.com

        private static final long serialVersionUID = 8165458985542870320L;

网管bitscn_com

    //设置图形验证码中的字符串的字体的大小

中国网管联盟bitsCN.com

        private Font mFont = new Font("Arial Black", Font.PLAIN, 16); 网管u家u.bitscn@com

  网管论坛bbs_bitsCN_com

        public void init() throws ServletException {

网管bitscn_com

            super.init(); 网管bitscn_com

        }

网管联盟bitsCN_com

 

网管论坛bbs_bitsCN_com

        /**

网管网www.bitscn.com

         * 生成随机颜色 网管bitscn_com

         * @param fc 网管网www.bitscn.com

         * @param bc

网管网www.bitscn.com

         * @return 网管网www_bitscn_com

         */ 网管论坛bbs_bitsCN_com

        Color getRandColor(int fc, int bc) { 网管u家u.bitsCN.com

            Random random = new Random();

网管论坛bbs_bitsCN_com

            if (fc > 255) 网管论坛bbs_bitsCN_com

                fc = 255; 网管联盟bitsCN@com

            if (bc > 255)

网管联盟bitsCN@com

                bc = 255; 网管网www.bitscn.com

            int r = fc + random.nextInt(bc - fc); 网管网www_bitscn_com

            int g = fc + random.nextInt(bc - fc);

网管u家u.bitsCN.com

            int b = fc + random.nextInt(bc - fc);

网管网www.bitscn.com

            return new Color(r, g, b);

网管下载dl.bitscn.com

        }

网管下载dl.bitscn.com

  网管网www_bitscn_com

        /* (non-Javadoc) 网管网www_bitscn_com

         * @see javax.servlet.http.HttpServlet#service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) 中国网管联盟bitsCN.com

         */ 网管联盟bitsCN_com

        public void service(HttpServletRequest request, HttpServletResponse response) 网管下载dl.bitscn.com

                throws ServletException, IOException {

网管下载dl.bitscn.com

            //生成服务器相应的service方法 网管论坛bbs_bitsCN_com

            //阻止生成的页面内容被缓存,保证每次重新生成随机验证码

网管联盟bitsCN@com

            response.setHeader("Pragma", "No-cache");

网管bitscn_com

            response.setHeader("Cache-Control", "no-cache");

网管bitscn_com

            response.setDateHeader("Expires", 0); 网管论坛bbs_bitsCN_com

            response.setContentType("image/jpeg");

网管u家u.bitscn@com

    //指定图形验证码图片的大小;

网管联盟bitsCN_com

            int width = 80;//宽度

网管联盟bitsCN@com

            int height = 20;//高度

中国网管论坛bbs.bitsCN.com

  网管网www.bitscn.com

            BufferedImage image = new BufferedImage(width, height,

中国网管论坛bbs.bitsCN.com

                    BufferedImage.TYPE_INT_RGB); 网管联盟bitsCN_com

  中国网管联盟bitsCN.com

    //      准备在图片中绘制内容

中国网管论坛bbs.bitsCN.com

            Graphics g = image.getGraphics();

网管下载dl.bitscn.com

            Random random = new Random(); 网管网www_bitscn_com

            g.setColor(getRandColor(200, 250)); 网管u家u.bitsCN.com

            g.fillRect(1, 1, width - 1, height - 1); 网管联盟bitsCN@com

            g.setColor(new Color(102, 102, 102)); 中国网管联盟bitsCN.com

            g.drawRect(0, 0, width - 1, height - 1); 中国网管联盟bitsCN.com

            g.setFont(mFont); 中国网管论坛bbs.bitsCN.com

 

中国网管联盟bitsCN.com

  网管bitscn_com

网管bitscn_com


TAGs   验证   生成       int   import   random.nextInt   <   fc   //      
 上一篇:JSP/Servlet伪静态网页实现   下一篇:没有了
用servlet生成验证码 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: