11 cookie&&session的学习笔记
2017-09-26 19:11
423 查看
一、会话概述
1、什么是会话?如同打电话
2、会话过程要解决的问题是什么?
保持各个客户端自己的数据。二、Cookie
由于Cookie数据是由客户端来保存和携带的,所以称之为客户端技术。1、属性:
name:名称不能唯一确定一个Cookie。路径可能不同。value:不能存中文。
path:默认值是写Cookie的那个程序的访问路径
比如:http://localhost:8080/day10_00_cookie/servlet/ck1写的Cookie
path就是:/day10_00_cookie/servlet
看当前创建cookie的资源(servlet)文件路径
客户端在访问服务器另外资源时,根据访问的路径来决定是否带着Cookie到服务器
当前访问的路径如果是以cookie的path开头的路径,浏览器就带。否则不带。
maxAge:cookie的缓存时间。默认是-1(默认存在浏览器的内存中)。单位是秒。
负数:cookie的数据存在浏览器缓存中
0:删除。路径要保持一致,否则可能删错人。
正数:缓存(持久化到磁盘上)的时间
实例一:记住用户操作
实例二:历史商品信息
三、HttpSession
1、为什么要学HttpSession?
> 它也是一个域对象: session servletContext request> 同一个会话下,可以使一个应用的多个资源共享数据
> cookie客户端技术,只能存字符串。HttpSession服务器端的技术,它可以存对象。
购物车案例
2、常用方法
把数据保存在HttpSession对象中,该对象也是一个域对象。void setAttribute(String name,Object value);
Object getAttribute(String name);
void removeAttribute(String name);
HttpSession.getId():
setMaxInactiveInterval(int interval) 设置session的存活时间
invalidate() 使此会话无效
3、getSession():内部执行原理
HttpSession request.getSession():内部执行原理1、获取名称为JSESSIONID的cookie的值。
2、没有这样的cookie,创建一个新的HttpSession对象,分配一个唯一的SessionID,并且向客户端写了一个名字为JSESSIONID=sessionID的cookie
3、有这样的Cookie,获取cookie的值(即HttpSession对象的值),从服务器的内存中根据ID找那个HttpSession对象:
找到了:取出继续为你服务。
找不到:从2开始。
HttpSession request.getSession(boolean create):
参数:
true:和getSession()功能一样。
false:根据客户端JSESSIONID的cookie的值,找对应的HttpSession对象,找不到返回null(不会创建新的,只是查询)。
3、客户端禁用Cookie后的会话数据保存问题
客户端禁用cookie:浏览器永远不会向服务器发送cookie的请求消息头解决方案:
方案一:在主页上给出提示:请不要禁用您的cookie
方案二:URL重写。必须对网站的所有地址都重写。
http://url--->http://url;JSESSIONID=111
response.encodeURL(String url);
看浏览器有没有发送cookie请求消息头,没有就重写URL,有就不重写。
request.getSession();必须写
相关文章推荐
- 安全测试学习笔记一(Cookie&Session)
- 【JAVAWEB学习笔记】16_session&cookie
- 安全测试学习笔记一(Cookie&Session)
- Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期
- 【Todo】Java学习笔记 100==100 & Reflection API & Optional类详解 & DIP、IoC、DI & token/cookie/session管理会话方式
- Javaweb学习笔记5—Cookie&Session
- cookie与session学习笔记 -- day02 Cookie&Session
- day10_cookie&session学习笔记
- JavaWeb学习笔记五 会话技术Cookie&Session
- 【Java学习笔记】Cookie Session Application
- JAVA WEB学习笔记-Cookie和Session专题
- Java-Web学习笔记(1) Session与Cookie
- 【小白笔记】PHP学习之路 (31) --cookie和session
- 【学习摘记】马士兵Servlet&JSP_课时11-课时14_session
- java web笔记之会话跟踪cookie&session
- 廖雪峰python学习笔记10&&11:容错处理与文件读写
- session与cookie的学习笔记
- Token ,Cookie和Session的区别--学习笔记
- Xcode 8 的 Debug 新特性 —- WWDC 2016 Session 410 & 412 学习笔记
- 【Head First Servlets and JSP】笔记13:session & cookie