动态网站开发讲课笔记07:会话及会话技术

零、本节学习目标

  • 了解什么是Cookie
  • 掌握Cookie对象的使用
  • 了解什么是Session
  • 掌握Session对象的使用

一、Cookie对象

(一)什么是Cookie

  • 目标:了解什么是Cookie

1、Cookie的概念

  • 在现实生活中,当顾客在购物时,商城经常会赠送顾客一张会员卡,卡上记录用户的个人信息(姓名,手机号等)、消费额度和积分额度等。顾客一旦接受了会员卡,以后每次光临该商场时,都可以使用这张会员卡,商场也将根据会员卡上的消费记录计算会员的优惠额度和累加积分。在Web应用中,Cookie的功能类似于会员卡,当用户通过浏览器访问Web服务器时,服务器会给客户端发送一些信息,如用户信息和商品信息,这些信息都保存在Cookie中。这样,当该浏览器再次访问服务器时,会在请求头中将Cookie发送给服务器,方便服务器对浏览器做出正确地响应。

2、如何设置Cookie

  • 服务器向客户端发送Cookie时,会在HTTP响应头字段中增加Set-Cookie响应头字段。Set-Cookie头字段中设置的Cookie的具体示例:Set-Cookie: user=hdl; path=/;
    user表示Cookie的名称,howard表示Cookie的值,path表示Cookie的属性。Cookie必须以键值对的形式存在,Cookie属性可以有多个,属性之间用分号“;”和空格分隔。

(二)了解Cookie API

  • 目标:掌握Cookie类的构造方法和常用方法

1、构造方法

  • Cookie类有且仅有一个构造方法,具体语法格式:public Cookie(java.lang.String name, java.lang.String value);
  • 在Cookie的构造方法中,参数name用于指定Cookie的名称,value用于指定Cookie的值。需要注意的是,Cookie一旦创建,它的名称就不能再更改,Cookie的值可以为任何值,创建后允许被修改。

2、常用方法

方法声明功能描述
String getName() 用于返回Cookie的名称
void setValue(String newValue) 用于为Cookie设置一个新的值
String getValue() 用于返回Cookie的值
void setMaxAge(int expiry) 用于设置Cookie在浏览器客户机上保持有效的秒数
int getMaxAge() 用于返回Cookie在浏览器客户机上保持有效的秒数
void setPath(String uri) 用于设置该Cookie项的有效目录路径
String getPath() 用于返回该Cookie项的有效目录路径
void setDomain(String pattern) 用于设置该Cookie项的有效域
String getDomain() 用于返回该Cookie项的有效域
void setVersion(int v) 用于设置该Cookie项采用的协议版本
int getVersion() 用于返回该Cookie项采用的协议版本
void setComment(String purpose) 用于设置该Cookie项的注解部分
String getComment() 用于返回该Cookie项的注解部分
void setSecure(boolean flag) 用于设置该Cookie项是否只能使用安全的协议传送
boolean getSecure() 用于返回该Cookie项是否只能使用安全的协议传送

(三)使用Cookie的语法

1、导入包

  • import = "javax.servlet.http.Cookie"

2、创建Cookie

  • Cookie newCookie = new Cookie("parameter", "value");
参数 含义
parameter 用于代表cookie的名称(key)
value 用于表示当前key名称所对应的值

3、写入Cookie

  • response.addCookie(newCookie)