A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【001】什么是会话?会话的类别有几种?
答:
会话:打开1个浏览器,访问服务器的多个web资源,然后关闭浏览器,整个过程称为1个会话
类别:
  • Cookie
  • Session

【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不安全
  • Session在一定时间内保存在服务器上,所以当访问增多,会比较占用服务器的性能
  • 将登录等重要信息存放为session,其它需保留的信息存放在cookie中
⑤  单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie

1 个回复

倒序浏览
都是干货,可以发给学生好好看看。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马