本文实例为大家分享了javaWeb使用验证码实现简单登录的具体代码,供大家参考,具体内容如下
简单的流程图,,
1。用户给第一次访login . jsp问页面时,会想服务器发送两个请求,一个请求是显示图片,还有一个是显示表单
2。第一个请求发送后服务器中verifyServlet处理,随机生成验证码图片,并保存到会话中,然后响应给客户端
3。第二个请求后服务器LoginServlet处理,获取表单验证码,以及会话中的验证码,再判断两个验证码是否相等,相等就向下执行即success.jsp,否则跳转login . jsp到页面
login . jsp1。创建
% @ & lt;页面语言=癹ava”=癹ava.util进口。*”pageEncoding=" utf - 8 " %比; & lt; % 字符串路径=request.getContextPath (); 字符串basePath=request.getScheme () +”://? request.getServerName () +“:”+ request.getServerPort() +路径“/? %比; & lt; !DOCTYPE HTML公共”——//W3C//DTD HTML 4.01过渡//EN”比; & lt; html> & lt; head> & lt;基地href=" https://www.yisu.com/zixun/" rel=巴獠縩ofollow”比; & lt; title>我的JSP登录。jsp的起始page & lt;元http-equiv=霸幼ⅰ蹦谌?皀o - cache”比; & lt;元http-equiv=癱ache - control”内容=皀o - cache”比; & lt;元http-equiv=暗狡凇蹦谌?" 0 "比; & lt;元http-equiv=肮丶省蹦谌?発eyword1、keyword2 keyword3”比; & lt;元http-equiv=懊枋觥蹦谌?罢馐俏业囊趁妗北? & lt; ! & lt;链接rel="样式表" type=" text/css " href=" https://www.yisu.com/zixun/styles.css " rel=巴獠縩ofollow”比; ——比; & lt;/head> & lt; body> & lt; %——本页面提供登录表单,还有显示错误信息——%比; & lt; h2>登录& lt;/h2> & lt; %//读取uname的饼干 字符串uname=" "; 饼干[]cs=request.getCookies (); 如果(cs !=null) { (饼干c: cs) { 如果(uname .equals (c.getName ())) { uname=c.getValue (); } } } %比; & lt; % 字符串消息=" "; 字符串味精=(字符串)request.getAttribute(“味精”); 如果(味精!=null) { 消息=味精; } %比; & lt;字体颜色=昂焐痹? lt; b> & lt; %=消息%祝辞& lt;/b> & lt;/font> & lt;形式行动="/ServletDemo2/LoginServlet1”方法=皃ost”比; 用户名:& lt; input type=" text " name="用户名" value=https://www.yisu.com/zixun/>
密码: 验证码:& lt; input type=" text " name=" verifycode大??”比; & lt; img src=" https://www.yisu.com/ServletDemo2/VerifyServlet "比; & lt; !——& lt; a href=" javascript: _change ()“rel=巴獠縩ofollow”在换一张& lt;/a>——比; & lt;输入类型="提交" value=" https://www.yisu.com/zixun/登录”/比; & lt;/form> & lt;/body> & lt;/html>
2. success.jsp(只是简单的展示)
& lt; body> & lt; h2> succ1 & lt; % 字符串的用户名=(字符串)session.getAttribute(“用户名”); 如果用户名==null) {/* 向请求域中保存错误信息,转发login . jsp到 */请求。setAttribute(“味精”、“请先登录再访问”); request.getRequestDispatcher (“login . jsp中/session2/?。提出(请求、响应); 返回; } %比; 欢迎登陆成功& lt; %=用户名%比; & lt;/body>
3。然后是VerifyServlet
包com.klay.servlet.session; 进口java.awt.image.BufferedImage; 进口java.io.IOException; 进口javax.servlet.ServletException; 进口javax.servlet.annotation.WebServlet; 进口javax.servlet.http.HttpServlet; 进口javax.servlet.http.HttpServletRequest; 进口javax.servlet.http.HttpServletResponse; 进口com.klay.image.VerifyCode;/* * * VerifyServlet Servlet实现类 */@WebServlet ("/VerifyServlet”) 公共VerfiyServlet扩展HttpServlet类 { 私有静态最终长serialVersionUID l=1; 保护无效doGet (HttpServletRequest请求,HttpServletResponse响应)抛出ServletException IOException { VerifyCode vc=new VerifyCode (); BufferedImage图像=vc.getImage (); request.getSession ()。setAttribute (“session_vcode vc.getText());//保存图片上的文本到会话 VerifyCode。输出(形象,response.getOutputStream ()); } }javaWeb使用验证码实现简单登录