如清晰度低,可转PC网页观看高清版本:
http://v.qq.com/x/page/r056700jckx.html
验证码实现
需求:
代码语言:javascript复制在登录的页面,增加一个验证码
/image.do->filter控制器-> 拦截器处理->action->result->image
步骤:
代码语言:javascript复制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