验证码
验证码
作用是:提高系统的安全性,防止网络攻击(暴力破解。。)
验证码是图片,机器人比较难读取图片中的信息
涉及的技术点:
图片图像的处理、随机生成字母或数字、文件IO流的处理、Session的使用
开发的步骤:
1)编写控制器的方法
2)随机生成4个字母或数字
3)将字母或数字绘制到图片中
4)生成随机的线条
5)将验证码字符串保存到Session中
6)将图片文件流发送给浏览器
7)在页面中通过img标签的src属性读取验证码图片
8)登录时对用户输入的验证码进行判断
9)点击图片时能刷新验证码
/**注释:
* 生成验证码
* @param session 保存验证码
* @param response 发送验证码给浏览器
*/
@RequestMapping(“code”)
public void createCode(HttpSession session, HttpServletResponse response) throws IOException {
Random random = new Random();
//定义图片的宽和高
int width = 80;
int height = 35;
//定义字体大小
int fontSize = 20;
//创建缓冲图片(保存到内存)
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_ARGB);
//获得图片的绘图对象 awt
Graphics g = image.getGraphics();
//设置背景颜色 awt
g.setColor(Color.GRAY);
//填充矩形背景颜色
g.fillRect(0,0,width,height);
//设置字体
g.setFont(new Font(“宋