当前位置:网站首页>个人博客系统
个人博客系统
2022-08-10 06:14:00 【一头创死算了】
1.Cookie和Session
1.Session(会话)是什么,为什么需要会话这个概念2.HTTP协议本身是无状态(stateless)协议
3.所以需要一些机制+HTTP协议来解决会话管理的问题
4.通常情况下,使用Cookie+Session机制来一起解决会话管理的问题
1.Cookie是浏览器-服务器之间
浏览器∶保存Cookie;在合适的请求中携带Cookie(表现为HTTP请求头的Cookie Header)服务器∶生成Cookie并传递给浏览器by HTTP响应(表现为HTTP响应头的Set-Cookie Header)2.使用Cookie+Session解决会话管理时,Cookie的主要职责是携带session-id 3.Cookie本身是一个独立的机制过期时间、限制域、限制路径…
4. Session是只存在于服务器的一套数据,通过 session-id 找到对应的数据
1.Session默认存储于内存中,但实际上不做限制,哪里都可以存储
2.通过 session-id 取到的数据,我们的代码中看到的还是 Map<String,Object>3.只要 session 存储,我们可以跨请求共享数据4.Session可以独立工作
用户管理
1.用户注册(添加新用户)2.用户登录(验证你是不是“你”)3.获取当前登录用户信息
1.将用户管理在内存中
用户∶ int uid, String username(唯一), String password
List allUsers;
登录场景/login.html
提供 form 表单,收集用户填写的用户名+密码信息,并且提交到服务器
/login.do
读取用户提交的用户名+密码,完成验证。
如果成功,进行登录(会话中保存当前用户),响应登录成功如果失败,重定向回/login.html
2.获取当前登录用户
1.如果没有当前登录用户,重定向(跳转)到/login.html 2.如果用户登录了,则显示当前登录用户信息/publish.html
GET
动态
3.将用户数据持久化到MySQL中
create table users (
根据用户名+密码查找用户
uid int primary key auto_increment, username varchar(60) not null unqiue,
selectfrom users where username = ?password varchar(60) not null and password = ?;¥
3.1建表
3.2 操作数据库的对象 DAO(Data Access Object)
UserDao.selectOneByUsernameAndPassword(…)
4.注册
form 提交 username + password
/register.html
读取用户名+密码,完成用户的添加(插入表中)
/register.do
注册后直接登录 or 跳转到登录页让用户登录
永远不要用明文去保存用户的密码
Web开发
一个 Web 应用 是由多个场景,每个场景下又会有多个功能组成!
由多个页面(html页面)组成的
n个css、js资源
一个页面consist of 1个HTML资源
n个.do资源n个json资源
一个页面是由多个web资源组成
资源
1.路径(path)=context path+servlet path
2.内容格式类型(content-type)∶ text/plain、text/html、text/css、application/javascript、application/json 3.静态vs动态
4.支持的HTTP方法(主要是动态资源)
浏览器-服务器以资源(resource)为单位,进行HTTP协议的沟通1.HTTP协议是应用层协议2.请求方法∶ get vs post 3.请求头∶Cookie头
4.响应状态∶ 1xx、2xx、3xx、4xx、5xx 200、404、405、500、301、302、307
5.响应头∶ Content-Type、Set-Cookie 场景总结
服务器浏览器
1.页面和其他资源产生关系(发起新的请求)1.浏览器地址栏输入URL回车——发起GET请求2.通过标签让浏览器自动发起GET请求
图片 CSS
边栏推荐
- ESP32 485风速
- C语言文件操作
- 老手也常误用!详解 Go channel 内存泄漏问题
- 761. Special Binary Sequences
- Make a boot floppy and boot with bochs emulator
- Regular backup of mysql database (retain backups for nearly 7 days)
- 一种奇怪的函数声明写法
- vscode + ccls环境配置
- Tencent Cloud Song Xiang: Kubernetes cluster utilization improvement practice
- Qt程序字体初始化引起的白屏问题
猜你喜欢
![Chapter 11 Database Design Specifications [2. Index and Tuning] [MySQL Advanced]](/img/a5/88699cf7b7fc0ca721977dc07b0602.png)
Chapter 11 Database Design Specifications [2. Index and Tuning] [MySQL Advanced]
网页安全证书错误但无法安装证书的解决办法

Confluence可以连接数据库但是在下一步就报错了

如何在AdsPower中设置YiLu代理?

C language file operation

神经网络可视化有3D版本了,美到沦陷 已开源

不同场景如何使用动态代理?

全网可达,交换机和路由器的配置,vlan

High quality WordPress download station 5 play theme template

ES13 - ES2022 - 第 123 届 ECMA 大会批准了 ECMAScript 2022 语言规范
随机推荐
几行代码就可以把系统高崩溃;
【电商业务】外行为何难区别 商品属性与商品规格
结构体初阶
第12章 数据库其它调优策略【2.索引及调优篇】【MySQL高级】
[网络安全]实操AWVS靶场复现CSRF漏洞
Chapter 12 Other Database Tuning Strategies [2. Index and Tuning] [MySQL Advanced]
Grammar Basics (Judgment Statements)
排序二叉树代码
高级测试:如何使用Flink对Strom任务的逻辑功能进行复现测试?
High quality WordPress download station 5 play theme template
修改 QtCreator 配置解决 “无法运行 rc.exe” 问题
BUUCTF Notes (web)
各位大佬,oracle11g,cdc2.2,flink1.13.6,单表增量同步。在没新增数据的情
Data types for database learning
进制的前缀表示和后缀表示
Ladies and gentlemen, oracle11g, cdc2.2, flink1.13.6, single-table incremental synchronization.Without adding data
Regular backup of mysql database (retain backups for nearly 7 days)
QEMU guest与host通过网络通信——bridge/hostfwd/guestfwd
网页安全证书错误但无法安装证书的解决办法
2022 Henan Mengxin League (fifth) game: University of Information Engineering H - Xiao Ming drinking milk tea