ServletContext全局作用域对象:当(Tomcat)web服务器开启时会自动创建一个全局作用域对象,相当于一个map集合。一个web服务器只有一个全局作用域对象。web服务器关闭之后会自动销毁全局作用域对象。全局作用域对象贯穿web服务器的整个生命周期。
Session会话作用域对象:网站会为每一个用户(浏览器)创建一个Session对象。Session底层数据结构是Map集合。会话作用域对象相当于用户在网站中的私人保险箱。
Cookie:当一个用户“第一次”(浏览器)访问一个网站时,网站会在响应的时候在响应头上添加一个Cookies对象键值对形式JSESSIONID=xxxxxxxxxxxxx。一个Cookie只能装一个键值对。代表该用户在服务端中对应的Session对象(私人保险柜)。浏览器第二次访问同一个网站时会在请求头上自动添加上该Cookie信息。
Cookie与Session:
销毁时机:Cookie默认在浏览器关闭的时候清除,可以在浏览器自行设置保存Cookie。Session保存在服务端,由于服务端不知道浏览器何时关闭,所以可以设置Session空闲时间,在空闲时间超过时删除对应Session对象。
关系:Cookie相当于服务器给用户发的房卡,通过房卡能找到用户在服务器开的房在哪。
Cookie和Session的区别:
1.存储位置:Cookie存储在浏览器端,Session存储在服务器端。
2.存储对象:Cookie存储的是String,Session是Object。
3.存储数量:一个Cookie只能存一个键值对,一个Session能存多个键值对。
4.关系:Cookie相当于用户在服务端的房卡,Session相当于用户在服务端开的房。
HttpServletRequest请求作用域对象:
请求作用域对象一次请求生成一个,HttpServletResponse同理。底层是一个Map集合。