当前位置:网站首页>个人博客系统
个人博客系统
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
边栏推荐
- 3-6月面经总结,200多页真题笔记和详解(含核心考点及6家大厂)
- 强化学习_06_DataWhale深度Q网络
- 2022河南萌新联赛第(五)场:信息工程大学 J - AC自动机
- C语言文件操作
- Ladies and gentlemen, oracle11g, cdc2.2, flink1.13.6, single-table incremental synchronization.Without adding data
- 761. 特殊的二进制序列
- S0:12345:respawn:/bin/start_getty 115200 ttyS0 vt102
- BUUCTF Notes (web)
- Can‘t find bundle for base name jdbc, locale zh_CN解决方法
- 强化学习_08_Datawhale针对连续动作的深度Q网络
猜你喜欢
随机推荐
netlink IPC
【论文解读】滴滴智能派单-KDD2018 Large-Scale Order Dispatch in On-Demand Ride-Hailing
1413. Stepwise Summation to Get Minimum Positive Numbers
vscode + ccls环境配置
强化学习_06_pytorch-DQN实践(CartPole-v0)
QEMU guest与host通过网络通信——bridge/hostfwd/guestfwd
Qt中输入框在Win10上“Win+/“快捷键的一个Bug
Bigder:42/100 showCase多少bug可以打回去
Text-to-Image最新论文、代码汇总
CuteOneP 一款php的OneDrive多网盘挂载程序 带会员 同步等功能
Sort binary tree code
Qt滚动条(QScrollBar)圆角样式问题跟踪
Qt借助隐藏控件和QSS绘制重复元素
【强化学习】《Easy RL》- Q-learning - CliffWalking(悬崖行走)代码解读
什么是MQTT网关?与传统DTU有哪些区别?
杭州公积金修改手机号信息
CAP介绍
金融证券 初级 招股书 要求 黑话1刷数 黑话2底稿 黑话3董监高
几行代码就可以把系统高崩溃;
【8月9日活动预告】Prometheus峰会