cookie:
cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中资源的时候,就会带着各自的数据去,这样,web资源处理的就是用户各自的数据了。
session:
session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在session中,当用户再去访问服务器中的其他web资源时,其他web资源再从用户各自的session中取出数据为用户服务。
1.如何创建cookie数据,如何封装用户的cookie数据,如何将封装的cookie打包给浏览器?
javax.servlet.http.Cookie类用于创建一个Cookie,response接口也定义了一个addcookie方法,他用于在其响应头中增加一个相应的Set-Cookie头字段。同样,request接口中也定义了一个getCookie方法,它用于获取客户端提交的Cookie。Cookie类的方法:
public Cookie(String name,String value)
setValue与getValue方法
setMaxage与getMaxage方法(Cookie的有效期)
setPath与getPath方法
setDomain与getDomain方法(有效域)
getName方法
用户访问服务器,服务器会回写一个cookie,浏览器关闭后cookie就没有了,下次再开浏览器就不会带cookie过去了。如果设置了cookie的有效期,会将数据写入硬盘中,下次登录的时候就会出现带着cookie过去,直到有效期结束。
一个cookie只能标识一种信息,它至少含有一个标识该信息的名称和设置值。
一个web站点可以给一个web浏览器发送多个cookie,一个web浏览器也可以存储多个web站点提供的cookie。
浏览器一般只允许存放300个cookie,每个站点最多存放20个cookie,每个cookie的大小限制为4kb。
如果创建了一个cookie,并将它发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除,若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间,将最大时效设置为0则是命令浏览器删除该cookie。
注意《删除cookie时,path必须一致,否则不会删除》。