P4 JavaWeb:cookie、session

188 阅读3分钟

一.cookie、session

1.会话

<1>.是什么:

I. 用户打开浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程称为会话;
II. 保存会话的两种技术是cookie,session

2.cookie

<1>.是什么:

客户端技术(响应,请求)

<2>.怎么用:

I.常用方法

Snipaste_2022-01-03_18-17-08.png

II.cookie的代码实现

i.xml配置

Snipaste_2022-01-03_18-34-04.png

ii.部署tomcat

Snipaste_2022-01-03_18-35-23.png

3.session

<1>.是什么:

I.服务器技术,可以利用这个技术保存用户的会话信息,把信息或数据存放在session中
II.服务器会给每一个用户(浏览器)创建一个session对象,每个session独占一个浏览器,只要浏览器没关,这个session就存在
III.使用场景:
    ①.保存一个登录用户的信息,比如用户登录以后淘宝以后,只要不关掉浏览器,用户都在这个session里面,这样用户访问淘宝的任何页面都可以不用登录;
    ②.购物车信息;
    ③.在整个网站中,经常会使用的数据,保存到session中,这样就不用new对象通过get来取数据
            

<2>.怎么用:

I.常用方法

Snipaste_2022-01-03_19-35-07.png

II.session的代码实现

i.存取数据(一个字符串)
①写存数据的servlet和读数据的servlet

Snipaste_2022-01-03_21-25-03.png Snipaste_2022-01-03_22-12-57.png

②编写servlet映射

Snipaste_2022-01-03_22-11-54.png

③部署tomcat并通过访问存数据的servlet

Snipaste_2022-01-03_21-30-10.png

④访问取数据的servlet,并查看控制台

Snipaste_2022-01-03_22-14-11.png Snipaste_2022-01-03_22-14-36.png

ii . 存取数据(一个对象)
①.编写pojo实体类

Snipaste_2022-01-03_22-15-57.png

②.编写servlet用于存数据和取数据

Snipaste_2022-01-03_22-17-26.png Snipaste_2022-01-03_22-18-13.png

③.编写xml中的对于servlet的mapping映射

Snipaste_2022-01-03_22-11-54.png

④.部署tomcat并访问存数据的servlet

Snipaste_2022-01-03_22-20-30.png

⑤.访问取数据的servlet,并查看后台

Snipaste_2022-01-03_22-20-45.png

Snipaste_2022-01-03_22-21-03.png

iii.session手动注销
场景:访问网站时,用户登录,设置手动注销用户
①编写servlet用于注销

Snipaste_2022-01-03_22-28-35.png

②web.xml配置映射

Snipaste_2022-01-03_22-30-09.png

③手动注销session
使用s1获取并存一个session,使用s3注销,s2获取就不到了,如果在使用s1服务器就产生了一个新的session 

Snipaste_2022-01-03_22-34-46.png

Snipaste_2022-01-03_22-32-19.png

Snipaste_2022-01-03_22-35-21.png

iv.设置session失效时间(自动注销session)(会话自动过期)
本练习在上面两个Demo的基础上实现
场景:访问网站,用户登录以后,如果规定时间内没有任何操作,就使用自动失效时间,但不要设置时间太长,否则网站崩了涉及到性能问题

Snipaste_2022-01-03_22-56-27.png

二.一个网站怎么证明用户访问过(流程)

1.cookie

用户第一次访问,服务器给用户一个cookie,同时用户的数据资源也在cookie中被携带,用户下次访问的时候携带上cookie就可以

Snipaste_2022-01-03_22-59-49.png

2.session

用户第一次访问,服务器登记一个session,生成SessionId,这个ID是每个用户唯一的,服务器把他丢给用户,用户拿到SessionId,同时服务器中session可以存数据,存的数据也是通过SessionId区别的(所以不同的用户登录淘宝,拿到的数据就是不同的,就是因为有SessionId;可以理解为,用户拿了钥匙来获取和钥匙匹配的数据)      

Snipaste_2022-01-03_23-09-37.png

三.cookie和session区别

1.cookie是把用户的数据写到用户的浏览器,浏览器保存(可以保存多个)
2.session是把用户的数据写到用户独占的session中,服务器端保存(保存重要的信息,减少服务器资源的浪费)
3.session对象由服务器创建,用户一打开浏览器,服务器就会创建session