会话管理

1.会话:用户打开浏览器,然后去访问服务器web资源,到关闭浏览器,完成一个会话。
2.实现会话的两种技术:Cookie和Session
Cookie:客户端技术。cookie存在浏览器中.用户通过浏览器访问服务器web资源时,web服务器会把用户数据通过cookie形式传给浏览器;浏览器去访问其他web资源时,浏览器会顺便带上用户数据去访问其他web资源。
Session:服务器技术。服务器会为每一个用户的浏览器创建一个session对象,用户访问web资源时,session对象中存储用户数据;当用户去访问其他web资源时,其他web资源会去从session中取出用户数据。
3.什么是Cookie?
1、Cookie是一种在客户端保持HTTP状态信息的技术,它好比商场发放的优惠卡。
2、Cookie是在浏览器访问WEB服务器的某个资源时,由WEB服务器在HTTP响应消息头中附带传送给浏览器的一片数据,WEB服务器传送给各个客户端浏览器的数据是可以各不相 同的。
3、一旦WEB浏览器保存了某个Cookie,那么它在以后每次访问该WEB服务器时,都应在HTTP请求头中将这个Cookie回传给WEB服务器。
4、WEB服务器通过在HTTP响应消息中增加Set-Cookie响应头字段将Cookie信息发送给浏览器,浏览器则通过在HTTP请求消息中增加Cookie请求头字段将Cookie回传给WEB服务器
4.Cookie的api
javax.servlet.http.Cookie类用于创建Cookie
response.addCookie方法:服务器用于给http响应头增加set-cookie字段
request.getCookie方法:用于获取客户端提交的cookie
new Cookie() 新建cookie
setValue() 给cookie设置值
getValue()获取cookie值
getName() 获取cookie的key
setPath() 产生cookie的路径
getPath() 获取cookie的路径
setMaxAge() 设置cookie的失效时间
geMaxAge() 获取cookie的失效时间
setDomain() 设置cookie跨域共享
5.cookie的setPath()和setDomain()
5.1.可在同一应用服务器内共享方法:设置cookie.setPath("/")
本机tomcat/webapp下面有两个应用:webapp_a和webapp_b,
1)原来在webapp_a下面设置的cookie,在webapp_b下面获取不到,path默认是产生cookie的应用的路径。
2)若在webapp_a下面设置cookie的时候,增加一条cookie.setPath("/");或者cookie.setPath("/webapp_b/");
就可以在webapp_b下面获取到cas设置的cookie了
3)设置cookie.setPath("/webapp_b/jsp")或者cookie.setPath("/webapp_b/jsp/")的时候,只有在webapp_b/jsp下面可以获得cookie,在webapp_b下面但是在jsp文件夹外的都不能获得cookie。
5.2.跨域共享cookie的方法:设置cookie.setDomain(");
A电脑所在的域:hom,A有应用webapp_a
B电脑所在的域:jszx.com,B有应用webapp_b
1)在webapp_a下面设置cookie的时候,增加cookie.setDomain(");,这样在webapp_b下面就可以取到cookie。

2)输入url访问webapp_b的时候,必须输入域名才能解析。比如说在A机器输入:,可以获取webapp_a在客户端设置的cookie,而B机器访问本机的应用,输入:http://localhost:8080/webapp_b则不可以获得cookie。

posted @ 2018-11-09 00:47  liuxiaojie1  阅读(85)  评论(0)    收藏  举报