验证登录

今天我们来学习一下登陆的几个步骤。首先在连接好数据库之后的登陆已经是比较简单的,也比较容易理解,下面就一起来看一下大概的登陆的页面样子。
在这里插入图片描述
这就是我们的登录页面了,上面第一行账号,接着密码、验证码、角色和一个记住我的单选框。账号密码怎么来的就不多说了,就是获取数据库里的数据作对比。这里就是主要对后台的数据验证和验证码的来去作说明。我们上图中的验证码是以一张图片的形式存在的,但它是以连接的方式连到控制器我们制作验证码图片处的。
在这里插入图片描述
下图就是关于验证码以及点击登录后的数据提交,先是获取到验证码的图片的ID,如果点击了图片,就再运行一遍生成验证码的方法,使验证码出现刷新状态,当然当你输错验证码的时候,验证码也是会刷新的。当所有该填的都填了以后。点击登录按钮,把页面上的数据全部获取到formDate里,包括记住我有没有勾选,然后充当参数把页面上的数据传到控制器。如果返回的数据是success(这只是我控制器返回的值,不做其他意思)就说明验证成功了可以跳转到主界面了。但是我们用的是window.location.replace他的意思就是以新的窗口window位置location把旧窗口替代replace掉,从而达到一个页面的跳转的效果。如果验证错误验证码刷新,返回提示并给提示框小图标和样式。页面的内容就只有这么多。如果需要按回车键登陆这个功能的话,就获取一下键盘按键对应的键值,如果有获取到键盘按下事件的话就对登陆按钮进行点击。
在这里插入图片描述
现在先说一下生成验证码图片的方法,这个方法很简单(验证码制作的详细流程在深色背景的类里面)就是对用类创建好的五位验证码转换类型。再保存到session中便于后面验证对错,然后返回图片文件到视图就完了。就到这里简单地讲讲生成验证码的大概思路。首先这个类里面分成两部分,一部分负责生成关于五位数的随机字符串,在什么时候可以产生大写,什么时候可以产生小写,包括产生多少位数的字母多少位数的数字,都有第一部分内容负责。至于第二部分内容就是产生用户看图片的干扰点,包括小圆点啊划线啊等干扰内容都是由第二部分负责
在这里插入图片描述
我们接着来讲一下关于页面数据提交后的数据处理问题。这应该是这一整个登录模块之中的重点了。在方法的开头先定义一个记录状态并返回的变量,接着就是获取到页面的数据了,其中验证码获取到的是文本输入框里面的数据,记住我直接获取到的就是页面上的单选框是否选择就可以了。接着就是判断这里面的是否为空了。其实我认为把大多数的判断放在视图进行判断,然后保持控制器的尽量简结,这样当出错的时候就能更快更准确的找到错误的地方进行修改了。这也是个不错的方法。大家可以尝试一下这种写法。然后就是声明一个新的变量来获取保存到cession中的内置五位数的验证码了。因为直接到页面上的图片中是获取不到的,而且页面上只有验证码图片的连接,根本无法获取到图片里面的内容。所以我们在它生成图片之前就把它存到cession当中,验证的时候可以直接从session中获取就行,所以这里面最特殊的就是验证码这部分了。现在我们就直接从session中获取到它。
在这里插入图片描述
接着呢就是判断验证码是否错误了,顺便一提验证码字母不区分大小写。如果觉得这样判断太繁杂了可以自己思考用更简单的方法。接下来是查询了,先查账号是不是存在的,如果不存在的话查询的条件会直接报错然后被try catch捕捉到然后直接输出账号不存在。接着对获取到的密码加密,再判断密码是否正确,不正确就输出密码错误。正确就进行下一步的判断。角色类型的判断。对页面上的角色类型进行去空格的操作。(这个可有可无自己掌握一个度就好)接着就是查询出权限了,如果查询出来的数据大于0就是密码与账号与权限能对应上。既然对应上了就进行下一步了。
在这里插入图片描述
接着获取用户类型的名称和ID,然后把用户ID和用户类型ID、用户类型还有登陆的时间保存到session中。这里的某某个session如果用不着可以不设置。我习惯把可能用到的都设置好,需要用时不用又回头添加上。好,接着呢就是到了记住我这个单选框了,判断如果选择上了的话开始建一个cookie,再设置这个cookie保存的时长。就是设置cookie里面的内容能保存多长时间。把账号密码和用户类型都添加到cookie里面去,验证码是每次都刷新的,所以是不放里面的。接着是不勾选的情况了,不勾选的话直接设置cookie为-1,设为-1是为了让他过期。过期了就会把数据清空。老实说我觉得这个地方怪怪的,但又好像没什么问题,要是发现有什么问题请一定要告知我,非常感谢。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值