1,登录表单,login.jsp

View Code

 1 <%@ page contentType="text/html" pageEncoding="GBK"%> 2 <% 3     request.setCharacterEncoding("GBK"); 4 %> 5 <center> 6     <form action="check.jsp" method="post"> 7         <h1>用户登录</h1> 8         <%=request.getAttribute("errMsg")!=null? request.getAttribute("errMsg"):""%><br> 9         用户名:<input type="text" name="username"><br/>10         密&nbsp;码:<input type="password" name="password"><br/>11     验证码:&nbsp;<input name="code" type="text" size="4" maxlength="4"><img src="data:image.jsp"/><br/>12         保存密码:<select name="saveTime">13             <option value="<%=0%>">不保存</option>14             <option value="<%=3600*24%>">保存一天</option>15             <option value="<%=3600*24*7%>">保存一星期</option>16             <option value="<%=3600*24*30%>">保存一月</option>17             <option value="<%=3600*24*30*12%>">保存一年</option>18         </select><br/><br/>19         <input type="submit" value="登录">        20     </form>21 </center>

2,JDBC校验,check.jsp

View Code

  1 <%@ page contentType="text/html" pageEncoding="GBK"%>  2 <%@ page import="java.sql.*"%>  3 <%  4     request.setCharacterEncoding("GBK");  5 String rand=(String)session.getAttribute("rand");  6 String userName=request.getParameter("username");  7 String userPass=request.getParameter("password");  8 String code=request.getParameter("code");      9 String DBDRIVER="oracle.jdbc.driver.OracleDriver";                                      10 String DBURL="jdbc:oracle:thin:@localhost:1521:study";                                 11 String DBUSER="scott"; 12 String DBPASSWORD="tiger";     13 long cookieTime=0; 14     try 15     { 16         cookieTime=Long.parseLong(request.getParameter("saveTime")); 17     } 18     catch(Exception ex) 19     { 20          21     } 22      23          24     Connection conn=null; 25     PreparedStatement psmt=null; 26     ResultSet rst=null; 27      28 boolean flag=false; 29 %> 30 <% //判断用户名密码是否为空 31 if(("".equals(userName)||null==userName)||("".equals(userPass)||null==userPass)) 32     { 33         request.setAttribute("errMsg","用户名或密码不能为空!"); 34 %> 35     <jsp:forward page="login.jsp"/> 36 <%         37     }     38 %> 39 <% //判断验证码是否正确 40 if(!code.equalsIgnoreCase(rand)) 41     { 42         request.setAttribute("errMsg","输入的验证码不正确"); 43 %> 44     <jsp:forward page="login.jsp"/> 45 <%         46     }     47 %> 48 <% 49 String sql="select id,username,password from userinfo where username=? and password=?"; 50     Class.forName(DBDRIVER);     51     try 52     { 53         conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); 54         psmt=conn.prepareStatement(sql); 55         psmt.setString(1,userName); 56         psmt.setString(2,userPass); 57         rst=psmt.executeQuery(); 58 if(rst.next()) 59         { 60 String name=rst.getString(2); 61 String password=rst.getString(3); 62             session.setAttribute("userid",rst.getInt(1)); 63             session.setAttribute("username",rst.getString(2)); 64             Cookie c1=new Cookie("username",name); 65             Cookie c2=new Cookie("password",password); 66             c1.setMaxAge((int)cookieTime); 67             c2.setMaxAge((int)cookieTime); 68             response.addCookie(c1); 69             response.addCookie(c1); 70             flag=true; 71         } 72 else 73         { 74             request.setAttribute("errMsg","用户名或密码不正确!"); 75         } 76     } 77     catch(Exception ex) 78     { 79         ex.printStackTrace(); 80     } 81     finally 82     { 83         try 84         { 85             conn.close(); 86         } 87         catch(Exception ex) 88         { 89             ex.printStackTrace(); 90         } 91     } 92 %> 93 <% 94 if(flag) 95     { 96 %> 97     <jsp:forward page="welcome.jsp"/> 98 <%         99     }100 else101     {102 %>103     <jsp:forward page="login.jsp"/>104 <%        105     }106 %>

3,Cookie的验证,cookie.jsp

View Code

 1 <%@ page contentType="text/html" pageEncoding="GBK"%> 2 <%@ page import="java.sql.*"%> 3 <% 4 if(session.getAttribute("username")==null) 5     { 6 String userName=null; 7 String userPass=null; 8         Cookie[] ck=request.getCookies(); 9 for(int i=0;i<ck.length;i++)10         {11 if("username".equals(ck[i].getName()))12             {13                 userName=ck[i].getValue();14             }15 if("password".equals(ck[i].getName()))16             {17                 userPass=ck[i].getValue();18             }19         }20 %>21 <%22 String DBDRIVER="oracle.jdbc.driver.OracleDriver";                                     23 String DBURL="jdbc:oracle:thin:@localhost:1521:study";                                24 String DBUSER="scott";25 String DBPASSWORD="tiger";    26         Connection conn=null;27         PreparedStatement psmt=null;28         ResultSet rst=null;29 String sql="select id,username,password from userinfo where username=? and password=?";30         Class.forName(DBDRIVER);    31         try32         {33             conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);34             psmt=conn.prepareStatement(sql);35             psmt.setString(1,userName);36             psmt.setString(2,userPass);37             rst=psmt.executeQuery();38 if(rst.next())39             {40 String name=rst.getString(2);41 String password=rst.getString(3);42                 session.setAttribute("userid",rst.getInt(1));43                 session.setAttribute("username",rst.getString(2));        44             }45 else46             {47                 request.setAttribute("errMsg","用户名或密码不正确!");48             }49         }50         catch(Exception ex)51         {52             ex.printStackTrace();53         }54         finally55         {56             try57             {58                 conn.close();59             }60             catch(Exception ex)61             {62                 ex.printStackTrace();63             }64         }65 %>66 <%67     }68 %>

  这里需要注意的是,在登录成功的欢迎页面中包含了此页面,通过判断session中是否存在登录成功后保存的用户名信息,进行处理。(如果没有就进行cookie信息的验证)
4,欢迎页,welcom.jsp

View Code

 1 <%@ page contentType="text/html" pageEncoding="GBK"%> 2 <% request.setCharacterEncoding("GBK"); %> 3 <jsp:include page="cookie.jsp"/> 4 <%     5 if(session.getAttribute("username")!=null) 6     { 7 %> 8     <h1>欢迎,<%=session.getAttribute("username")%>光临,此用户id为:<%=session.getAttribute("userid")%></h1> 9     <a href="invalidate.jsp">注销登录</a>10     11 <%12      }13 %>

5,注销session,invalidate.jsp

View Code

1 <%@ page contentType="text/html" pageEncoding="GBK"%>2 <%3     request.setCharacterEncoding("GBK");4     session.invalidate();5 %>

转载于:https://www.cnblogs.com/xiongyu/archive/2012/02/15/2353316.html

登录验证---添加验证码验证,Cookie保存功能相关推荐

  1. 如何在网站中添加验证码验证

    要在网站中添加验证码验证,可以按照以下步骤进行操作: 在HTML表单中添加验证码输入框.在表单中添加一个输入框,用于让用户输入验证码. 生成随机验证码并保存到会话中.在服务器端生成一个随机的验证码,并 ...

  2. Vue登录页添加验证码

    登录页添加验证码 新建ValidCode组件 ​ 内容如下,直接copy即可: <template><divclass="ValidCode disabled-select ...

  3. cas服务器登录页面添加验证码

    本文的是以cas-4.1.5进行的,cas源代码下载官网:https://apereo.github.io/cas/4.2.x/index.html. 1.在cas工程的web.xml增加验证码功能的 ...

  4. 为 Django admin 登录页添加验证码

    为什么80%的码农都做不了架构师?>>>    历史原因,使用上古版本 django 1.6.5,但新版本应该大同小异 首先添加自定义后台模块app, 如adm,并添加到 INSTA ...

  5. 【sprintboot+vue】前后端分离模式下的登录验证码验证

    [项目背景] 考虑登录时的验证安全,需要添加验证码验证,纯前端实现的验证码其实没有真正意义上做到安全验证的要求,简单一个网页爬虫就能获取到前端生成的验证码,所以应该由后台生成验证码,并由后台完成校验过 ...

  6. WordPress自定义登录和注册页面样式并且添加验证码

    通过一番尝试和验证以及网络搜索,终于实现了WordPress默认的登录和注册界面的样式修改,下面把过程记录下来.笔者主要是通过在主题中添加WordPress的钩子来实现登录和注册界面的样式修改的.Wo ...

  7. php防止恶意注册,WordPress防恶意注册-添加验证码功能 | 逗哥-架构师之路

    WordPress注册用户添加验证码,我这种小博客基本很少用到给网友注册用户的,登录后台添加验证码,找回密码添加验证码文章都写了,拽立网,也不差这个注册用户添加验证码文章了,大概差不多只需要一串代码就 ...

  8. php 怎么验证邮箱验证码,PHP实现邮箱验证码验证功能

    标签:邮箱验证   登录   格式   tar   程序   body   用户名   实现   include *文章来源:https://blog.egsec.cn/archives/623  ( ...

  9. Java实现验证码验证功能

    Java如何实现验证码验证功能呢?日常生活中,验证码随处可见,他可以在一定程度上保护账号安全,那么他是怎么实现的呢? Java实现验证码验证功能其实非常简单:用到了一个Graphics类在画板上绘制字 ...

最新文章

  1. mysql 按两列排序吗_按两列排序MySQL表
  2. Stream Processing:滑动窗口的聚集(aggregation)操作的优化算法讲解
  3. PHP消息队列用法实例分析
  4. caffe:Data 层
  5. stl-vector详解
  6. npm包全局安装和局部安装,执行包命令有什么不同?
  7. 单片机课程设计数字心率计_光学心率传感器详细使用教程
  8. 据说这是熟练掌握python的爷们_dongbei 是一门基于 Python 3 二次开发的东北方言编程语言...
  9. python语言有哪两个系列_(转)Python学习笔记系列——Python是一种纯粹的语言
  10. G - 数据结构实验之链表五:单链表的拆分
  11. ssm使用注解配置多数据源
  12. 使用N2N搭建虚拟局域网|可用于红警、我的世界联机
  13. python savefig函数_python中savefig中的键事件。怎么做?
  14. Matlab程序——3d玫瑰
  15. 课堂派考试可以切屏吗_雨课堂考试可以切屏吗?能切出去搜答案吗
  16. 启动到APP的设置页,小米手机自启动管理页,小米手机APP权限管理页
  17. 四川金弘同创:拼多多产品要怎么上新
  18. 矩阵相关知识回顾--协方差的意义
  19. 裁员不可怕,可怕的是行业在发生巨变,而你却原地踏步
  20. 自动取消订单/自动确认收货

热门文章

  1. SPOJ GCDEX (数论)
  2. WriteableBitmap 巧学巧用
  3. 电子之嵌入式主流芯片浏览
  4. 让微软企业库中的Email Trace Listener使用需要身份验证的SMTP服务器
  5. python中字符串输出乱码怎么解决_Python字符串的encode与decode研究心得乱码问题解决方法(转)...
  6. idea每次都要build_Lombok有啥牛皮的?SpringBoot和IDEA官方都要支持它!
  7. vb杨辉三角代码编写_「二次开发」——基于VB.NET的NX UG软件二次开发基础
  8. strassen算法java_使用java写的矩阵乘法实例(Strassen算法)_Java_软件编程
  9. gridsearchcv参数_Python机器学习库Sklearn系列教程(21)-参数优化
  10. 数字图像处理(作业三)——孔洞填充+全局阈值+自适应阈值