-
Cookie是什么?
- Cookie可以保存会话状态,但是这个会话状态是保留在客户端上。
- 只要Cookie清楚或者失效,这个会话状态就没有了。
- Cookie是保存在客户端上的
- Cookie可以保存在浏览器的缓存中,浏览器关闭,Cookie消失。Cookie也可以保存在客户端的硬盘文件中,浏览器关闭Cookie还在,除非Cookie失效。
-
Cookie只有在javaweb中有吗?
- Cookie不止是在javaweb中存在,只要是web开发,只要是B/S架构的系统,只要是基于HTTP协议,就有Cookie的存在。
- Cookie这种机制是HTTP协议规定的。
-
Cookie实现的功能常见的有:
- 保留购物车商品的状态在客户端上
- xxx天内免登录
-
java中Cookie被当作类来处理,使用new运算符可以创建Cookie对象,而且Cookie有两部分组成,分别是Cookie的name和value,name和value都是字符串类型。
-
在java中怎么创建Cookie,Cookie是在javax.servlet.http包下的
improt javax.servlet.http.Cookie; Cookie cookie = new Cookie(name, value);
-
服务器可以一次向浏览器发送多个Cookie
-
默认情况下,服务器发送Cookie给浏览器之后,浏览器将Cookie保存在缓存当中,只要不关闭浏览器,Cookie永远存在,并且有效。当浏览器关闭之后,缓存中的Cookie清除。
-
在浏览器客户端无论是硬盘文件中还是缓存中保存的Cookie,什么时候会再次发送给服务器呢?
- 浏览器会不会提交发送这些Cookie给服务器,和请求路径有关系。
- 请求路径和Cookie是紧密关联的。
- 不同的请求路径会发送提交不同的Cookie
-
默认情况下Cookie会和哪些路径绑定在一起?
- 只会在请求和servlet同路径的情况下才会携带cookie中存储的数据,包含同级目录和下级目录。
-
Cookie路径是可以指定的,可以通过java程序进行设置,保证Cookie和某个特定的路径绑定在一起。
cookie.setPath("/xxx");
-
默认情况下,没有设置Cookie的有效时长,该Cookie被默认保存在浏览器的缓存当中,只要浏览器不关闭,Cookie就一直存在,如果浏览器关闭了,那么Cookie就会消失。这是会话级别的Cookie。我们可以通过设置Cookie的有效时长,以保证Cookie保存在硬盘文件当中,但是这个有效时长必须大于0。如果Cookie时长设置为0,则该cookie会被删除,如果Cookie被设置为负数,则不会被保存。
cookie.setMaxAge(10000);
public void doGet(HttpServletRequest request, HttpServletResponse response) {
response.setContentType("text/html;charset=UTF-8");
createAndSendCookieToBrowser(request, response);
}
private void createAndSendCookieToBrowser(HttpServletRequest request, HttpServletResponse response) {
try {
PrintWriter pw = response.getWriter();
Cookie cookie = new Cookie("name", "UpYou");
cookie.setMaxAge(10000);
response.addCookie(cookie);
} catch(IOException e) {
e.printStackTrace();
}
}
本文由 UpYou 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Dec 13,2020