javaweb的知识点总结(session和cookie)

1.什么是会话
打开浏览器,访问服务器,直到浏览器关闭,称为一次会话
2.cookie
Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去
访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了

主要方法
Cookie(String name,String value)
String getName()
String getValue()
void setValue(String newValue)
void setMaxAge(int expiry) 用户开一个浏览器,点击多个链接,访问服务器的多个web资源,然后关闭浏览器,整个过程称为一次会话
int getMaxAge() 获取cookies有效期
void setPath()
String getPath()
setDomain(String pattern)设置有效域
getDomain()

name:名字不能唯一确定一个cookie,路径可能不同
value:不能存中文
path:客户端访问服务器另外资源时,根据访问的路径来决定是否带着cookie到服务器,
当前访问的路径是以cookie的path开头的路径,浏览器就带
maxAge:cookie的缓存时间,默认是-1
负数:cookie的数据存在浏览器缓存中
0:删除  路径要保存一致,否则会删错
正数:缓存持久化到磁盘上的时间


3.session(request.getSession)
Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,
由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,
当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务
void setAttribute(String name,Object value);
Object getAttribute(String name);
void removeAttribute(String name);
HttpSession.getId():
setMaxInactiveInterval(int interval)  设置session的存活时间
invalidate() 使此会话无效

4.cookie和session的差别
A.cookie数据存放在客户端的浏览器上,session数据放在服务器
B.cookie不是很安全,别人可以分析存放在本地的cookie进行cookie欺骗安全的话还是用session
C.session会在一定时间内保存在服务器上,当访问增多或占用服务器性能
D.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie


5.cookie和session的应用场景
session登陆验证信息:session(Login)true和false
需要在页面间传递的内容信息,比如调查工作要好几步,每一步都要保存在session中,最后统一更新到数据库
cookie:判断用户是否登陆过网站,以便下次登陆时能够直接登陆,如果我们删除cookie,每次登陆就要重新填写相关信息
另一个重要的应用是“购物车”中类的处理和设计。用户可能在一段时间内在同一家网站的不同页面选择不同的商品,
可以将这些信息都写入cookie,在最后付款时从cookie中提取这些信息


6.客户端禁用Cookie后的会话数据保存问题
客户端禁用cookie:浏览器永远不会向服务器发送cookie的请求消息头

解决方案:
方案一:在主页上给出提示:请不要禁用您的cookie
方案二:URL重写。必须对网站的所有地址都重写。
http://url--->http://url;JSESSIONID=111
response.encodeURL(String url);
看浏览器有没有发送cookie请求消息头,没有就重写URL,有就不重写。
request.getSession();必须写

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页