CookieANdSession

来源:互联网 发布:xp编程器 编辑:程序博客网 时间:2024/05/17 22:54


Cookie

       什么是Cookie

Cookie是网景公司发明。Cookie是由服务器端创建,发送给浏览器,浏览器可以将cookiekey/value保存到浏览器端,下一次在请求同一个网站的资源时,就可以将cookie发送给服务器。

javaeeapi中有一个类  javax.servlet.http.Cookie,它就可以创建一个cookie,它的构造方法Cookie c =new Cookie(String name,String value)

Cookie是由http协议制定的,并不是java语言特有的,php.net都可以使用cookie

问题1:如果将一个cookie响应到浏览器端?

我们可以通过response对象来操作,可以通过response.addHeader(“set-cookie”,”one=aaa”);也可以通过简便的方法

http协议中生成的格式  set-cookie:one=aaa; two=bbb

response.addCookie(Cookie);

问题2:如果关服务器端得到一个cookie

       我们要想得到一个cookie可以通过requst对象来获取。

       http请求头中有一个cookie:one=aaa;two=bbb

       可以通过request的一个方法Cookie[] getCookies()得到所有的cookie

总结:

       1.创建Cookie    new Cookie(Stringname,String value);

       2.cookie响应到浏览器端   response.addCookie(Cookie);

       3.在服务器中获取Cookie    request.getCookies();得到了一个Cookie数组。

 

得到Cookie对象后,可以使用getName()getValue()方法来得到cookie的名称与值。


 http协议对cookie规定如下:(笔试题)

1.      cookie用于携带少量数据最大为4kb

2.      一个服务器最多向一个浏览器保存20cookie

3.      一个浏览器最多可以保存300cookie.

 

cookie持久化问题:

默认情况下,cookie它是会话级别的,简单说,就是cookie是存储在浏览器的内存中,如果将浏览器关闭,cookie就消失。

setMaxAge()可以让cookie持久化.也就是说可以在浏览器端产生一个cookie文件,当关闭浏览器后,cookie也不会消失。

注意:如果将setMaxAge(0)代表的是删除cookie.

我们在删除cookie时要注意一个关于cookie路径的问题。删除与创建cookie时它们的路径必须一致。

cookie路径有什么作用?

       它的作用就是确定当访问服务器的资源时,是否要携带cookie.

       例如  aCookie  /cookieAndSession/  bCookie /cookieAndSession/jsps/ c

               cCookie /cookieAndSession/jsps/cookie

       当我们访问

http://localhost/cookieAndSession/index.jsp这时只有aCookie会携带到服务器端,原因是路径中包含了aCookiepath

当我们访问

http://localhost/cookieAndSession/jsps/index.jsp这时会有aCookiebCookie携带到服务器端



1 0