黑马程序员技术交流社区

标题: 【广州校区】【原创】Cookie常见问题精华总结 [打印本页]

作者: 帅气de路人甲    时间: 2018-1-10 09:48
标题: 【广州校区】【原创】Cookie常见问题精华总结
【001】什么是会话?会话的类别有几种?
答:
会话:打开1个浏览器,访问服务器的多个web资源,然后关闭浏览器,整个过程称为1个会话
类别:

【002】如何使用Cookie技术,添加一个Cookie信息?
答:
使用Cookie技术的步骤:
①  创建一个Cookie对象:
Cookie cookie = new Cookie("...", "...");
②  设置最大有效时间(默认浏览器关闭Cookie消失):
cookie.setMaxAge(...);
③  设置有效路径(默认为当前工程):
cookie.setPath("...");
④  将cookie添加到响应中,返回给浏览器:
response.addCookie(cookie);

【003】如何删除一个Cookie?
答:
删除Cookie没有特定的方法,删除时需要将Cookie值设置为空,而最大有效时间设置为0,进行覆盖;
删除Cookie时主要不单名字要一致,有效路径也必须一致

【004】如何处理Cookie中的中文数据?
答:
要想在Cookie中存储中文,那么必须使用URLEncoder类里面的encode(String s, String enc)方法进行中文转码,例:
Cookie cookie = new Cookie("userName", URLEncoder.encode("...", "UTF-8"));
response.addCookie(cookie);
再获取cookie中的中文数据时,使用URLDecoder类里面的decode(String s, String enc)进行解码,例:
URLDecoder.decode(cookies.getValue(), "UTF-8");

【005】Java提供来操作Cookie的API有哪些?
答:
Java中的javax.servlet.http.Cookie类用于创建一个Cookie
Cookie(String name, String value)                :实例化Cookie对象,传入cookie名和值

public String getName()                                :取得Cookie的名字

public String getValue()                                :取得Cookie的值
public void setValue(String newValue)        :设置Cookie的值

public void setMaxAge(int expiry)                :设置Cookie的最大保存时间,即Cookie的有效期
public int getMaxAge()                                :获取Cookie的有效期

public void setPath(String url)                        :设置Cookie的有效路径
public String getPath()                                :获取Cookie的有效路径

public void setDomain(String pattern)        :设置Cookie的有效域
public String getDomain()                        :获取Cookie的有效域

【006】Cookie和Session有什么异同?
答:
①  Session和Cookie都是会话跟踪技术
②  Session是保存在服务器端的技术,而Cookie是保存在客户端的技术
③  Session可以存储对象,而Cookie只能存储字符串
④  Session比较安全,而Cookie不安全
⑤  单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie


作者: 纯情小飞飞    时间: 2018-1-11 18:32
都是干货,可以发给学生好好看看。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2