登录验证---添加验证码验证,Cookie保存功能
1,登录表单,login.jsp
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 密 码:<input type="password" name="password"><br/>11 验证码: <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
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
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
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
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保存功能相关推荐
- 如何在网站中添加验证码验证
要在网站中添加验证码验证,可以按照以下步骤进行操作: 在HTML表单中添加验证码输入框.在表单中添加一个输入框,用于让用户输入验证码. 生成随机验证码并保存到会话中.在服务器端生成一个随机的验证码,并 ...
- Vue登录页添加验证码
登录页添加验证码 新建ValidCode组件 内容如下,直接copy即可: <template><divclass="ValidCode disabled-select ...
- cas服务器登录页面添加验证码
本文的是以cas-4.1.5进行的,cas源代码下载官网:https://apereo.github.io/cas/4.2.x/index.html. 1.在cas工程的web.xml增加验证码功能的 ...
- 为 Django admin 登录页添加验证码
为什么80%的码农都做不了架构师?>>> 历史原因,使用上古版本 django 1.6.5,但新版本应该大同小异 首先添加自定义后台模块app, 如adm,并添加到 INSTA ...
- 【sprintboot+vue】前后端分离模式下的登录验证码验证
[项目背景] 考虑登录时的验证安全,需要添加验证码验证,纯前端实现的验证码其实没有真正意义上做到安全验证的要求,简单一个网页爬虫就能获取到前端生成的验证码,所以应该由后台生成验证码,并由后台完成校验过 ...
- WordPress自定义登录和注册页面样式并且添加验证码
通过一番尝试和验证以及网络搜索,终于实现了WordPress默认的登录和注册界面的样式修改,下面把过程记录下来.笔者主要是通过在主题中添加WordPress的钩子来实现登录和注册界面的样式修改的.Wo ...
- php防止恶意注册,WordPress防恶意注册-添加验证码功能 | 逗哥-架构师之路
WordPress注册用户添加验证码,我这种小博客基本很少用到给网友注册用户的,登录后台添加验证码,找回密码添加验证码文章都写了,拽立网,也不差这个注册用户添加验证码文章了,大概差不多只需要一串代码就 ...
- php 怎么验证邮箱验证码,PHP实现邮箱验证码验证功能
标签:邮箱验证 登录 格式 tar 程序 body 用户名 实现 include *文章来源:https://blog.egsec.cn/archives/623 ( ...
- Java实现验证码验证功能
Java如何实现验证码验证功能呢?日常生活中,验证码随处可见,他可以在一定程度上保护账号安全,那么他是怎么实现的呢? Java实现验证码验证功能其实非常简单:用到了一个Graphics类在画板上绘制字 ...
最新文章
- mysql 按两列排序吗_按两列排序MySQL表
- Stream Processing:滑动窗口的聚集(aggregation)操作的优化算法讲解
- PHP消息队列用法实例分析
- caffe:Data 层
- stl-vector详解
- npm包全局安装和局部安装,执行包命令有什么不同?
- 单片机课程设计数字心率计_光学心率传感器详细使用教程
- 据说这是熟练掌握python的爷们_dongbei 是一门基于 Python 3 二次开发的东北方言编程语言...
- python语言有哪两个系列_(转)Python学习笔记系列——Python是一种纯粹的语言
- G - 数据结构实验之链表五:单链表的拆分
- ssm使用注解配置多数据源
- 使用N2N搭建虚拟局域网|可用于红警、我的世界联机
- python savefig函数_python中savefig中的键事件。怎么做?
- Matlab程序——3d玫瑰
- 课堂派考试可以切屏吗_雨课堂考试可以切屏吗?能切出去搜答案吗
- 启动到APP的设置页,小米手机自启动管理页,小米手机APP权限管理页
- 四川金弘同创:拼多多产品要怎么上新
- 矩阵相关知识回顾--协方差的意义
- 裁员不可怕,可怕的是行业在发生巨变,而你却原地踏步
- 自动取消订单/自动确认收货
热门文章
- SPOJ GCDEX (数论)
- WriteableBitmap 巧学巧用
- 电子之嵌入式主流芯片浏览
- 让微软企业库中的Email Trace Listener使用需要身份验证的SMTP服务器
- python中字符串输出乱码怎么解决_Python字符串的encode与decode研究心得乱码问题解决方法(转)...
- idea每次都要build_Lombok有啥牛皮的?SpringBoot和IDEA官方都要支持它!
- vb杨辉三角代码编写_「二次开发」——基于VB.NET的NX UG软件二次开发基础
- strassen算法java_使用java写的矩阵乘法实例(Strassen算法)_Java_软件编程
- gridsearchcv参数_Python机器学习库Sklearn系列教程(21)-参数优化
- 数字图像处理(作业三)——孔洞填充+全局阈值+自适应阈值