会话
用户开一个浏览器,点击多个超链接,
访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。
问题思考:
用户点击超链接通过一个servlet购买了一个商品,
程序应该想办法保存用户购买的商品,以便于用户点结帐servlet时,
结帐servlet可以得到用户购买的商品为用户结帐。
是否可以使request和ServletContext域解决?
Cookie概念
Cookie是客户端技术,
程序把每个用户的数据以cookie的形式写给用户各自的浏览器。
当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。
这样,web资源处理的就是用户各自的数据了。
Cookie应用场景
记录用户名
显示浏览记录
Cookie原理分析
当浏览器进行网络请求时,如果携带当前浏览器的cookie
服务器打给浏览器
set-cookie:username=zhangsan;Exipres=Moday,具体时间
浏览器打给服务器
Cookie:username=zhangsan;
存储到浏览器的文本中
username=zhangsan 169.254.xxx.xxx/day09_cookie/servlet
name value url
Cookie 使用细节
一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。
一个WEB服务器可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。
浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。
删除cookie时,path必须一致,否则不会删除
Cookie案例讲解
* 模拟通过cookie记录上次访问时间
* 模拟通过cookie记录用户名
* 模拟通过cookie记录浏览记录
———————————————————-
Session概念
在需要保存用户数据时,
服务器程序可以把用户数据写到用户浏览器独占的session中,
当用户使用浏览器访问其它程序时,
其它程序可以从用户的session中取出该用户的数据,为用户服务。
Session原理
图解
Session应用场景
使用Session完成用户登陆
利用Session实现一次性验证码
利用Session实现购物车
利用Session防止表单重复提交
Session常用基本方法
HttpSession session = request.getSession();//得到session对象
setAttribute
getAttribute
removeAttribute
案例演示
使用Session完成用户登录
![这里写图片描述](https://img-blog.csdn.net/20170710233820521?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjk4NTY4NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)