●登录名和密码是同时验证的,并不是先验证登录名是否存在,然后再验证密码是否正确,是同时进行验证,若登录名和密码当中一个条件不符合,则提示用户登录名或者密码错误,

这样做的意义是为了保证用户信息的安全(防止登录名泄漏),现在web工程多是这么进行登录用户名和密码的验证

●动态验证码是采用Image的一个servlert实时生成动态验证码,并且servlert将生成的动态验证码保存在session中,在jsp取得到的动态验证码和session中保存的动态验证码进行比较,来判断用户

输入的动态验证码是否准确。

●验证用户名和密码,验证动态验证码是否输入准确都需要通过action进行逻辑判断,而验证用户名,密码,验证码是否为空可以在jsp中用js进行判断,不需要传递到后台。

●具体实现过程:

(1)先建立ImageServlet.java文件,然后在web.xml文件中进行配置。

ImageAction

com.xxx.action.ImageServlet

ImageAction

/ImageServlet

(2)然后login中,建立几个对应需要显示的信息块,将其都设为display:none,根据需要显示的信息进行设置其显示或者隐藏

1

您的密码或账号有误,请重新输入!

2

请填写校验码!

3

校验码输入有误!

4

用户名不能为空!

5

密码不能为空!

其中,1和3需要提交给loginAction进行处理,根据查询数据库对用户名和密码进行验证,查询到userlist,若list为空,则说明用户名和密码输入有误,若返回userpo,则说明输入正确,将userpo存入session

//您的密码或账号有误,请重新输入temp==0

List user =  service.checkIsExist(username, pwd);

if (user == null ||user.size() == 0) {

request.setAttribute("errorFlag",0);

return"false";

}

userpo = (UserPO)user.get(0);

//校验码输入错误temp == 1

String randPic = (String)this.getHttpServletRequest().getSession().getAttribute("rand");

if(pic==null ||!pic.equalsIgnoreCase(randPic)){

request.setAttribute("errorFlag",1);

return"false";

}

session.setAttribute("userpo",userpo);

对于2,4,5这三种情况,在jsp页面进行js判断,提示用户进行输入,其方法为提交按钮的事件为return clksub(),当这个事件返回true才交表单数据传递给action

其为true的情况则是用户名,密码,验证码都输入的情况,针对情况显示出对应的div

function clksub(){

$("#loginInfo1").css({display:"none"});

$("#loginInfo3").css({display:"none"});

$("#loginInfo4").css({display:"none"});

$("#loginInfo5").css({display:"none"});

$("#loginInfo2").css({display:"none"});

//用户名不能为空

if(document.getElementById("username").value== ""){

$("#loginInfo4").css({display:""});

return false;

}

//密码不能为空

if(document.getElementById("userpwd").value== ""){

$("#loginInfo5").css({display:""});

return false;

}

//请填写校验码2

if(document.getElementById("picid").value== ""){

$("#loginInfo2").css({display:""});

return false;

}

return true;

}

(3)因为在struts.xml文件中对loginAction的配置为

/index.jsp

/login.jsp

故当1,3情况,也就是用户名密码输入错误,验证码输入错误这两种情况,则停留在login页面,login再次加载的时候则需要执行一个函数,来接收errorFlag

对应jsp中的接收errorFlag的元素为

" />

//页面进行加载时

//JS函数为

$(function initFunc(){

var temp=$("#errorFlag").val();

if(temp==0){

//您的密码或账号有误,请重新输入1

$("#loginInfo1").css({display:""});

} else if(temp == 1){

//校验码错误3

$("#loginInfo3").css({display:""});

}

})

根据errorFlag的值来确定是否需要显示相应的div

至此,对login页面的用户名,密码,验证码的处理到此实现

java验证码验证码_Java登录页面实时验证用户名密码和动态验证码相关推荐

  1. Java登录页面实时验证用户名密码和动态验证码

    ●登录名和密码是同时验证的,并不是先验证登录名是否存在,然后再验证密码是否正确,是同时进行验证,若登录名和密码当中一个条件不符合,则提示用户登录名或者密码错误, 这样做的意义是为了保证用户信息的安全( ...

  2. 写一个登录页面,输入用户名密码, 如果输入正确,跳转 欢迎页面输入错误,返回登录页面,提示错误

    思路: 1.在web里面设置已经定义好的账号的密码的值. 2.在index.jsp当中用表单在界面输出文本框,获取用户输入 3.得到用户输入req.getParameter("code&qu ...

  3. java制作网易邮箱登录页面_Page Object实例(一) - Java + Selenium 登录163邮箱

    Page Object 是什么: Page Object(selenium wiki)是Selenium2开始提供的一种代码设计模式. 其核心思想是把web页面的元素查找及操作和页面测试分离开. 这样 ...

  4. 简易代码实现预设账号(卡密)登录页面的验证

    学完以下内容,你就可以实现一个静态登录验证功能啦 简易代码实现预设卡密登录页面的验证 提示:以下是本篇文章正文内容,下面案例可供参考 一.html中设计Login登录文本框 代码如下: <cen ...

  5. Java学习day3——Javaweb登录页面设计(1)(含JSP代码)

    写在前面 本文主要的内容是完成网页登录页面设计,以及判断用户名密码是否正确,如果正确,进入下一页面,并输出sessionID,若错误,则在登录页面给出用户名或密码错误提示,并在登录页面显示访问次数. ...

  6. 模拟用户登录过程,验证用户名、密码和校验码,如果全部正确提示用户登录成功,否则,提示用户相关输入错误

    要求:模拟用户登录过程,验证用户名.密码和校验码,如果全部正确提示用户登录成功,否则,提示用户相关输入错误. 目的:掌握登录校验的规则和原理. //登录验证 #include<stdio.h&g ...

  7. js正则表达式验证用户名密码

    1.js正则表达式用法 参考: https://www.runoob.com/js/js-regexp.html 2.验证用户名/密码 var pat=/[\w\u4e00-\u9fa5]{6,12} ...

  8. php验证用户名密码是否为空,【后端开发】php验证用户名密码是否为空

    php验证用户名密码是否为空 很多时候,我们前端js对用户名密码进行了非空验证,后端还需要再次验证一下,这样能保证数据的安全,代码逻辑的健壮性. php验证用户名密码为空的方法,代码如下: if (! ...

  9. java通过ssh读取日志_IDEA+java通过SSH来进行分析日志,实现UI自动化动态验证码登录...

    在我写自动化脚本的时候是要真实发送验证码才能往下进行UI自动化 思路:验证码会显示在哪些地方,手机短信?数据库存储?日志? 完整代码如下: package guanyu.tools; import c ...

最新文章

  1. 内存都没了,还能运行程序?
  2. 三代纠错软件LoRDEC安装和使用(0.6版本)
  3. mongo go 查询指定字段_Go语言 操作MongoDB数据库批量查询
  4. 对用批处理写的chm反编译工具小析
  5. 无法接收 agent 发出的检测信号_BR-PST系列基桩非金属超声波检测仪的系统延时来源及测试校正方法...
  6. mxnet基础到提高(13)--Activation激活函数
  7. VTK:PolyData之GetMiscCellData
  8. python特征选择的过程_【来点干货】机器学习中常用的特征选择方法及非常详细的Python实例...
  9. C#多线程|匿名委托传参数|测试您的网站能承受的压力|附源代码
  10. 多年JAVA 基础总结
  11. 重装系统(windows系列:win10,win11专业版;Linux系列:Ubuntu18.04,22.04LTS安装)即装机必备软件汇总
  12. php手机页面中文输出乱码,如何解决php输出中文乱码的问题?
  13. 第五人格显示服务器连接失败,第五人格网络连接失败怎么回事
  14. 盘点:那些年的游戏公司
  15. echarts封装 - 续2
  16. 泛泰binx和ota升级包下载工具Android版[2013.6.7提供源代码]
  17. 每个程序员都应该了解的 CPU 高速缓存
  18. 2004年6月30日
  19. 用金属铂做电极的高压电容
  20. C#操作json字符串

热门文章

  1. 一步一步教你安装MeeGO和Windows 7双系统(上网本或笔记本)
  2. Http请求状态码-416
  3. 激活具有 eSIM 功能的消费类物联网设备的 4 种方法
  4. linux rm-rf误删文件 思路
  5. MySQL 各个索引的使用
  6. 阿里字体图标iconfont在伪元素里面使用方法
  7. 虚幻引擎图文笔记:如何让带骨骼的角色捡东西(Pickup)和扔东西(Drop)
  8. wxc-cell使用
  9. 眼球中心定位跟踪算法—eyelike 代码解析
  10. 【充电站】_世俗智慧_哲学智慧_.