Cookie及session总结

1.Cookie 
由服务器创建,发送给浏览器,由浏览器来保存到本地。每个Cookie是一个键值对,键和值都只是能字符串类型。而且不能直接使用汉字
Set-Cookie:name=value
1)与Cookie操作相关的方法:
Cookie类的方法
Cookie(String name,String value):创建一个Cookie,指定名字和值
String getName():得到名字
String getValue():得到值
void setMaxAge(int expiry):设置过期时间,单位是秒。如果设置为0,删除Cookie


2) 服务器写入到浏览器端的Cookie方法
response.addCookie(cookie对象)


3) 浏览器读取到服务器的Cookie的方法
Cookie[] request.getCookies()


4)设置路径的方法
cookie.setPath(路径):设置浏览器向服务器发送Cookie的访问路径
默认的路径:
如果没有设置访问路径,则使用项目的访问地址。只有访问地址是这个路径或它的子路径,浏览器才将cookie的信息发送给服务器。路径用于区别不同的项目的访问地址。




一般不建议在Cookie中使用汉字,不能直接写汉字。如果要使用汉字必须进行编码和解码
java.net.URLEncoder.encode("字符串","utf-8") 对字符串使用utf-8编码


java.net.URLDecoder.decode("字符串","utf-8") 对字符串使用utf-8解码








2.HttpSession
Session技术的特点:
  a.Cookie的数据保存在浏览器端,Session的数据是保存在服务器内存中。
  b.每个访问服务器用户都有自己的存储空间
  c.每个用户之间的数据是不能共享的
每个用户访问服务器都会从浏览器端带一个会话id,访问自己的会话空间。

Session和Cookie的主要区别在于:
  a.Cookie的数据保存在浏览器端,Session的数据是保存在服务器内存中。
  b.Cookie的键和值都是字符串类型,而Session键是字符串,值是Object。


1). 得到Session对象的方法:
request.getSession() 1)如果没有会话,则创建一个,如果已经有了会话,则返回这个会话对象


2). HttpSession类的API:
1) 方法:
HttpSession接口方法 作用
String getId():得到会话id,格式是一个32位的十六进制的数,在服务器上是唯一的。
long getCreationTime():得到会话创建的时间,返回1970-1-1到这个时间相差的毫秒数
long getLastAccessedTime():得到客户端上一次访问的时间
boolean isNew():是否是新的会话
void invalidate():会话过期
ServletContext getServletContext() 得到上下文对象
void setMaxInactiveInterval() 设置过期的时间,单位是秒
2) 作用域对象的方法:
HttpSession的方法 作用
Object getAttribute("名字") 从会话域中得到一个值
void setAttribute("名字",Object数据) 向会话域中保存键和值
void removeAttribute("名字") 从会话域中删除键和值




Servlet三个作用域总结
作用域的创建与销毁
作用域 接口名 作用范围 生命周期
请求域 HttpServletRequest 一个用户的一次请求 一个请求结束
会话域 HttpSession 一个用户的所有请求 会话过期
上下文域 ServletContext 所有用户的所有请求 服务器关闭


三个作用域共同的方法
功能 HttpSession方法
存放数据 void setAttribute("键", 值);
获取数据 Object getAttribute("键")
删除数据 void removeAttribute("键")

猜你喜欢

转载自blog.csdn.net/weixin_38421237/article/details/79619807