javaWeb使用验证码实现简单登录

  

本文实例为大家分享了javaWeb使用验证码实现简单登录的具体代码,供大家参考,具体内容如下

  

 javaWeb使用验证码实现简单登录

  

简单的流程图,,

  

1。用户给第一次访login . jsp问页面时,会想服务器发送两个请求,一个请求是显示图片,还有一个是显示表单

  

2。第一个请求发送后服务器中verifyServlet处理,随机生成验证码图片,并保存到会话中,然后响应给客户端

  

3。第二个请求后服务器LoginServlet处理,获取表单验证码,以及会话中的验证码,再判断两个验证码是否相等,相等就向下执行即success.jsp,否则跳转login . jsp到页面

  login . jsp

1。创建

        % @ & 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使用验证码实现简单登录