前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >碎片化 | 第四阶段-41-struts2字节流生成验证码-视频

碎片化 | 第四阶段-41-struts2字节流生成验证码-视频

作者头像
码神联盟
发布2018-04-02 16:53:39
6700
发布2018-04-02 16:53:39
举报
文章被收录于专栏:码神联盟码神联盟码神联盟
视频内容

如清晰度低,可转PC网页观看高清版本:

http://v.qq.com/x/page/r056700jckx.html

验证码实现

需求:

在登录的页面,增加一个验证码
/image.do->filter控制器-> 拦截器处理->action->result->image

步骤:

1:完善login.jsp页面,添加验证码字段

    <input type="text" name="code"><img src="image.do"><span id="v_code"></span><br/>

2:配置struts.xml,----生成一张图片的action
    <!-- 验证码图片 -->
    <action name="image" class="imageAction">
        <result name="success" type="stream">
            <param name="inputName">imageStream</param>
        </result>
    </action>

3:写一个ImageAction----生成一张图片,并且,这张图片以字节流的形式传输到页面

    原生验证码生成:
        BufferedImage image = new BufferedImage(100,50,BufferedImage.TYPE_INT_RGB);//创建图片区域和图片色素
        Graphics graphics = image.getGraphics();//获取图片的画布
        graphics.setColor(Color.RED);//给当前画布设置前景色
        graphics.drawString("java11", 0, 50);//将“java11”字符画到画布上面

        ByteArrayOutputStream btouts = new ByteArrayOutputStream();//字节流输出对象
        ImageIO.write(image, "png", btouts);//将image图片写到输出对象
        //将图片赋值与imageStream
        byte[] btinp = btouts.toByteArray();//将输出字节对象转换为字节数组
        imageStream = new ByteArrayInputStream(btinp);//将字节数组写入到一个输入对象中

    工具类生成验证码:
        ValidateCode vc = new ValidateCode(100, 30, 3, 50);//创建验证码工具类
        imageStream = vc.getInputStream();//获取验证码的输入对象并赋值到imageStream
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码神联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 验证码实现
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档