碎片化 | 第四阶段-41-struts2字节流生成验证码-视频
时间:2022-05-06
本文章向大家介绍碎片化 | 第四阶段-41-struts2字节流生成验证码-视频,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
如清晰度低,可转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
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 配置ssh免密登陆,并使用命令行与服务器交互
- 使用scp进行与服务器的文件交互(上传和下载)
- Python 技术篇-文件操作:本地文件重命名
- 3种方法加密Python文件
- 用两个栈实现队列
- Python+selenium 自动化-selenium自带的截图功能
- PyQt5 技巧篇-便于文字排版的等宽字体推荐,中文为英文两倍宽字体
- php List()函数及json_encode时无法转为数组的问题
- Python 技术篇-邮件发送并展示本地图片
- PHP变量传递值的方法
- Python 技术篇-邮件发送各种类型的附件
- PHP循环语句
- Markdown简易教程
- 【剑指Offer】表示数值的字符串
- JetBrains 集成开发环境常用插件-快捷键-内存优化