WEB开发笔记-cookie与session

来源:互联网 发布:7层网络结构 编辑:程序博客网 时间:2024/05/13 10:37

getattribute("String")取域里面本来的属性值
getparameter("String") 取客户机带来的指定参数

***************************************************

——————————————————————————
************************************************
***********************************************
cookie和session保存会话数据技术:

cookie:我老是把cookie想成一个唯一的东西,其实它就相当于一个类,可以Cookie

cookie=new Cookie("",);


一直不明白浏览器访问这么多网站,应该不会在访问其中一个网站的时候带上所有的数据(这

个网站的数据和与此网站无关的数据),它是怎样区分是这个网站所需的数据的呢?
cookie客户端有一个setpath()和getpath()方法,setpath()设置为哪个路径,浏览器在访问

这个路径的servlet才会带cookie过来,如果没有用setpath设置路径的话,则这个cookie是

哪个servlet返回的,只有访问这个servlet才回带cookie!!!
带多少数据还没说啊?怎样区分是这个网站所需数据的???
IE浏览器会阻止第三方的cookie!!


cookie的setMaxAge()方法:设置cookie保存有效期,若不设置浏览器关闭后cookie就清除了
***********************************
带cookie:客户端第一次访问肯定是没有cookie的,访问后response会new一个cookie给客户

端,其中带有哪些信息也是服务器自己设的(如带有一个字段bookHistory) ,这cookie返回

给客户端后,客户端第二次访问这个服务器时候带来了cookie(什么时候带,见上面的

setpath),服务器request处理cookie,取出想要得到的信息(如取出bookHistory),然后再

进行服务器端处理,response返回给客户端处理的界面(和新的cookie)!!

********************
网址:.sina.com 叫域
有检索数据的需求用双例  map集合(有key value)
没有的话通通用单例   list集合
********************
****************************
session:服务器会为每个浏览器会话创建一个独自的session对象。
什么叫浏览器会话:如打开一个浏览器访问网站点击购买(相当于访问购买servlet代码,

servlet代码中有下面创建session语句,并不是访问网站就创建session哦!),会生成

session后,再打开一个浏览器访问此网站点击结账是不会有前面购买商品的信息的。两个浏

览器相当于两个会话。
**
这里出现一个问题:当在电脑上打开多个浏览器的时候,同时点击购买同时生成了多个

session,服务器是怎么区分每个session的??
其实session是基于cookie的,用户点击网站购买(servlet)生成session的时候,同时会为这

个cookie生成一个id名为JSessionID ,并以cookie的形式返回给客户,当用户点击结账的时

候是带着cookie中的JSessionID 来的,以此区分多个会话的session的。注意了,这个

cookie是没有设置有效期的,也就是说关闭当前会话浏览器cookie就没了,这个时候再次点

击结账的时候是没有购买商品的信息的(session存在默认30分钟,但是却没了JSessionID

,会重新创建一个session)。所以要设置cookie的有效期为30分钟!
--
问题2:当我关闭浏览器的时候会话结束session存在,然后再打开浏览器,服务器为什么会

觉得我不是一个新的会话为我创建一个新的session,而是觉得我是原来的会话给我原

session呢????
我想了一下,会不会就是当前session的个数是记住的,当关闭浏览器后再次打开,还是这个

session的个数不会新创建!
---------
问题3:session是通过cookie返回(以cookie带给服务器的),如果电脑设置禁止接受cookie

呢?
其实gesesion()中的代码是:判断是否以cookie带session和是否以url带session
url带session是指的url?JSessionID ,在url后会加上JSessionID ,这样写
 Stringurl1=response.encodeURL("/ServletDemo/servlet/SessionDemo1");//用 

    这个代码测试我的问题2
------------------、
创建(和得到)session代码:
 session=request.getSession();//这里是get其实是得到session,如果没有

session就创建,所以也是创建
 session.setAttribute("name","洗衣机");
//request.getSession(false);只获取session不创建,如用户购物车
session的生就是上面的创建,session什么时候死?
session生,开浏览器访问网站一个有创建session的servlet代码!
session死,当session30分钟(可设置)没有使用,不与会话关闭相关!

原创粉丝点击