![3.6 显示登录信息课程纲要](https://img-blog.csdnimg.cn/20210613154301530.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyODYzMjY1,size_16,color_FFFFFF,t_70)
1. 流程图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210613160021121.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyODYzMjY1,size_16,color_FFFFFF,t_70)
用户登录凭证表login_ticket
字段 |
类型 |
备注 |
id |
int |
主键、自增 |
user_id |
int |
登录用户id |
ticket |
varchar |
登录凭证,随机字符串 |
status |
int |
登录状态:0-有效、1-无效 |
expired |
timestamp |
过期时间 |
用户表user
字段 |
类型 |
备注 |
id |
int |
主键、自增 |
username |
varchar |
用户名,创建索引 |
password |
varchar |
用户密码 |
salt |
varchar |
加密盐值 |
email |
varchar |
用户邮箱,创建索引 |
type |
int |
用户类型:0-普通用户、1-超级管理员、2-版主 |
status |
int |
用户状态:0-未激活、1-已激活 |
activation_code |
varchar |
激活码 |
header_url |
varchar |
用户头像地址 |
create_time |
timestamp |
注册时间 |
- 假设用户已经登录,服务器通过
Cookie
给用户发了一个凭证ticket
并保存在了浏览器中;
- 当浏览器再次访问服务器时,它都会将
Cookie
发送至服务器;
- 因此,服务器可以从
Cookie
中得到这个ticket
;
- 当服务器得到
ticket
,通过查询数据库表 login_ticket
得到user_id
;
- 再通过
user_id
查询数据库表 user
便可获得用户的所有信息;
- 将获得的用户信息返回给模板
Template
- 最后,模板
Template
向浏览器响应生成HTML
文件,该HTML
文件便可携带上当前登录用户的信息。
2. 从cookie中获取ticket
在util包
下创建 CookieUtil工具类
,通过 name
查询对应 cookie
的 value
。
public class CookieUtil {
public static String getValue(HttpServletRequest request, String name) {
if (request == null || name == null) {
throw new IllegalArgumentException("参数为空!");
}