开发者学堂课程【Java Web项目实战1:注册登录、客户关系管理系统:给注册添加验证码】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/39/detail/905
给注册添加验证码
简介:
1. verifycode 类
2. verifycodeservlet
3. regist.jsg
4.修改 Registservlet
1. verifycode 类
*BufferedInmage getImage () -->获取随机的验证码图片
*string getText() -->获取图片上的文本
*static output (BfferedImage,outputstream) -->把图片写入到指定的输出流中。
2. verifycodeservlet
*获取随机验证码图片
*把验证码图片上的文本保存到 session 中
*把图片响应到 response 的 outputstream 中
3. regist.jsg
*添加
*添加一个文本框,用来输入验证码
*"看不清,换一张",是一个超链接。把上面的 的 src 重新再次指向 servlet! 为了处理浏览器的缓存,需要使用时间来做参数!
4.修改 Registservlet
*校验验证码!
*错误:保存表单数据到 request 域、保存错误信息到 request 域,转发回 regist.j3p
*正确:什么都不做,向下执行原来代码!
package cn.itcast.user.web.servlet;
import java.awt . image.BufferedImage;.
public class verifyCodeservlet extends Httpservlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws servletException,IOException i
/*
* 1.创建验证码类* /verifycode vc = new verifyCode ();
/*
* 2.得到验证码图片* /BufferedImage image = vc.getImage () ;
/*
* 3.把图片上的文本保存到session中
*/
request.getSession ( ) .setattribute ( "session_vcode",vc.getText() );
/*
* 4.把图片响应给客户端
verifycode. output (inage, response.getoutput.stream () ) ;
}
}
/ *
*新添加任务:*校验验证码
*1.用户填写的验证码已经封装到user中
*2.从session获取真正的验证码
*3.比较两者,如果不同,保存错误信息、保存表单数据,转发到regist.jsp
*4.如果相同,什么都不做,向下执行!
* /
string sessionVerifyCode = (String) request.getSession () .getAttribute ("session_vcode");
if ( !sessionverifyCode.equalsIgnoreCase (form.getverifyCode()))
request.setAttribute ( "msg","验证码错误!");
request.setAttribute ( "user", form) ;
request.getRequestDispatcher("/user/regist.jsp").forward (request,response) ;
return;
}