Web: cookie
Posted ascertain
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web: cookie相关的知识,希望对你有一定的参考价值。
path: 相同站点,path任意设置
默认值(In Set-Cookie, path is null)
- path=/a/b/ => cookie path=/a/b
- path=/a/b => cookie path=/a
可见性
- 只能访问path <= current document path的cookie, ( trailing \'/\' is significance), so \'/\' is global visible
Web入门系列初探会话管理-Cookie技术
特点
会话数据保存在浏览器客户端。
Cookie技术核心
1、构造Cookie对象
Cookie(String name, String value)
2、设置cookie
#设置cookie的有效访问路径
void setPath(String uri)
#设置cookie的有效时间
void setMaxAge(int expiry) :
@设置cookie的值
void setValue(String value) :
3、发送cookie到浏览器端保存
void response.addCookie(Cookie cookie)
4、服务器接收cookie
Cookie[] request.getCookies()
Cookie原理
1、服务器创建cookie对象,把会话数据存储到cookie对象中;2、服务器发送cookie信息到浏览器;3、浏览器得到服务器发送的cookie,然后保存在浏览器端。
4、浏览器在下次访问服务器时,会带着cookie信息;5、服务器接收到浏览器带来的cookie信息。
public class CookieServlet extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1、创建Cookie对象 Cookie cookie = new Cookie("name","ss"); // 2、把cookie数据发送到浏览器(通过响应头发送: set-cookie名称) //response.setHeader("set-cookie", cookie.getName()+"="+cookie.getValue()); //推荐使用这种方法,避免手动发送cookie信息 response.addCookie(cookie); } }
public class GetCookieServlet extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 3、接收浏览器发送的cookie信息 Cookie[] cookies = request.getCookies(); if (cookies != null){ for (Cookie cookie : cookies){ String name = cookie.getName(); String value = cookie.getValue(); System.out.println(name+"="+value); } } } }
Cookie细节
public class CookieServlet extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1、创建Cookie对象 Cookie cookie = new Cookie("name","ss"); /** * 1)设置cookie的有效路径。默认情况:有效路径在当前web应用下。 /myweb */ //cookie.setPath("/myweb"); /** * 2)设置cookie的有效时间 * 正整数:表示cookie数据保存浏览器的缓存目录(硬盘中),数值表示保存的时间。 * 负整数:表示cookie数据保存浏览器的内存中,浏览器关闭cookie数据丢失。 * 零:表示删除同名的cookie数据 */ //cookie.setMaxAge(20); //cookie.setMaxAge(-1); //cookie1.setMaxAge(0); //2.把cookie数据发送到浏览器(通过响应头发送: set-cookie名称) //response.setHeader("set-cookie", cookie.getName()+"="+cookie.getValue()); //推荐使用这种方法,避免手动发送cookie信息 response.addCookie(cookie); } }
注意:Cookie数据类型只能保存非中文字符串类型的。可以保存多个cookie,但是浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,
每个Cookie的大小限制为4KB。
以上是关于Web: cookie的主要内容,如果未能解决你的问题,请参考以下文章
python web框架补充cookie和session(Django)