学习springboot2的第7天(2021-12-06)44-web实验-后台管理系统的基本功能
1、创建一个新的项目
将一些静态资源放到static文件加下面:
2、将login.html返回到templates文件夹下面:
为什么放到这个templates文件夹下面呢?
ctrl + N : 搜索类:ThymeleafProperties
发现前缀就是templates
设计登录页就是访问项目根目录或者登陆页就会进入的。
写一个Controller
1、
新建一个包:controller
2、新建一个IndexController类
我们设置的是:
你访问的是/或者/login都进入登陆页面
启动测试:
浏览器访问:http://localhost:8080/
或者浏览器访问:http://localhost:8080/login
模拟登陆成功之后进入到主页面main.html
1、首先要修改:login.html的表单提交那里的代码:
第一:先加上th的名称空间。
xmlns:th=“http://www.thymeleaf.org”
第二:表单提交的action:
登陆成功之后进入main.html
但是现在有个问题,就是,在浏览器的登陆成功的页面,刷新一次,就相当于是又做了一次表单的提交。
因为又重新发起了一次/success的请求。
我们每次刷新/success页面,做了一次表单的重复提交。
如何解决呢?
中间经历一次重定向,所以,现在每次刷新,都是访问静态页面main.html
现在刷新:都不会出现表单重复提交的情况
但是现在又有一个问题,就是,由于你的Controller里面存在这个get请求处理:
所以你现在在任何位置直接输入:
localhost://8080/main就可以访问主页。并不需要通过登陆操作。这个显然是不合理的。
我们需要利用session对象存储user对象来进行校验。
现在正常的现象:
1、直接访问主页main请求,会显示:未登陆,请登陆之后再来的提示信息。
2、如果进入输入账号密码错误。
3、使用root和root登陆成功之后,右上角显示的名字是登陆的用户名字。
使用Thymeleaf的行内写法。
因为这个username的显示不在任何标签里面。
[[${session.loginUser.userName}]]
因为我们登陆成功之后会将user对象存储到session里面。