登录的思路
首先要有User模型
所以要生成User模型
再来就是要有UserMapper,这是mybatis的知识,
(Mapper)UserMapper就是 三层里面的 Dao层,只是在SSM里面 就没有dao了
而是用(Mapper)UserMapper
还要注意一下
这个Vo(UserVo)是个啥
它是User的子类
直接直接用工具类(逆向工程)生成模型
自动就生成了,连生成位置就指定好了,直接就可以用
模型生成好,就生成mapper(就是Dao)
对应的xml里面也要去写一个 login的方法
这两块完成之后再写service,再写表现层(写控制器,再写view)
注意:Userservice是一个接口,而UserServiceImpl是一个类
然后是service的实现类 serviceImpl
一定要注意,UserService 接口里面不用写注解
而是在它的实现类里面写注解,不要搞错了
接下来就是控制器和view
loginController
在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,
相当于Servlet中在web.xml中配置,具体请接着耐心往下看
登录日志后面加上去,毕竟我们有这个表,但是这里我们先实现登录,因为不能跑题
常量我们创建一个接口就行,因为接口里面都是 public finally 是比较符合我们的要求的
这有点像C#和java里面的枚举
这样的思想就是就是尽可能的配置化,并且配置文件尽量都放一起
这个就是我们第7点
常量的英文名其实是 constant 这里写的有点毛病,算了将错就错吧,知道就行了
接下来是index,不需要改
所以接下来就是 login.jsp(登录页面)以及index.jsp(登录后进入的主页)
下面看具体操作
第三方登录我们先不管
我们实现自己的登录再说
这样去提交
如下加个id,实现一秒钟之后提交表单
调试:
为啥123456不正确呢
我们看看数据库
注意这不是乱码,这是加密过后的密文
MD5本来是不可以(反)解密的,但是由于123456,这个过于简单,是可以的,稍微复杂点的是不可逆的
我们试试解密
我们为什么要加密,是为了安全
但是能解密又谈何安全呢,我们这能解密完全是因为密码太简单了
所以稍复杂一点的密码是解密不了的,大可以放心
既然破解不了,那么网上那种破解密码是怎么实现的呢
这就是用到一种叫做穷举法的一种方式,就是不断的试
一旦试出来马上保存起来,存到数据库里面
所以复杂的密码,你要想破解出来肯定是要收费的
接着说我们的登录功能
所以我们判断密码是否一致的时候,也要加密一下,用密文去和数据库里面的密文匹配,看看是否相等
那么怎么加密呢
按照我们以前的思路,是不是去网上下载一个MD5加密的工具类呢
实际上不需要
因为spring已经考虑到了
注意要检查一下表名是否一致,否则会报错
那么重点是怎么用
我们来看看怎么用
登录调试一下
一点登录发现报错了
我们找到第22行
改一下
再调试一下
输入账号:admin
密码123456
成功进入主页了
由于主页我们还没写,所以报404是正常的,说明成功了
现在我们来加主页index.jsp
注意,是所有的路径都要看
而且基本上都是要这样改的
都要改,这里就不赘述了
注意几个比较容易漏掉的地方
需要注意的是,删除的时候不要随便删,最好看看有没有地方用到,完全没有用到的是可以删的
名字也不要写死,我们改一下
注意这里如果改完没生效
那就清除一下缓存,因为这个是写在缓存里面的js
这个锁屏也有一些问题,路径和乱码问题需要解决,这些移植一个项目遇到的很正常的问题
下面的看一下就行,不要跟着改代码,锁屏这块先不改,因为改到后面有问题
我们发现,我们在index页面是找不到锁屏的代码的
那么这个页面在哪呢
首要要明白,这种代码肯定不在css里面
而是很有可能在js里面
如果我们把上面那段代码干掉,就先干掉看看吧
不要慌,这个错很容易看出来,也就是说这个方法在其它地方被调用过,
现在我们把它删掉了,那些调用到它的地方找不到这个方法了,仅此而已
大概有三四个地方调用了它,那怎么办,我们不删这个方法吗
其实很简单,不删
你调我可以,但是我方法内部不实现锁屏的方法就行了,
我们删掉方法里面的代码是一样的
公告层里面啥代码也不写
接下来下一个问题
如果
解锁解不了,这个时候怎么办
我们猜想是unlock发方法有问题
再测试一下,就好了
如果解锁还有问题,我们就先去看原始的代码,先去分析,分析完了再改
最笨的办法就是全部考过去,但是不合理,在比较紧急的情况下可以这么做,但是不建议
因为有问题,所以我们还是先不移出来了
还原一下,锁屏这块先不改
直接在原始的基础上改一下,先将就用
☆
登录的思路就是
先写User模型(model层)然后mapper(Dao,包括UserMapper.java和UserMapper.xml)(数据层)service(业务逻辑层)、然后就是表示层(控制器和view)
架子搭好写具体的逻辑
查找这个用户是否存在,账号密码是否正确即可,增删改查里面,需要用到查
☆自己用其它的逆向工程来写也是可以的,,手写都行,只是逆向工程可以大大提高开发效率