JavaWeb-Cookie&Session学习笔记

Cookie&Session:

会话技术:
会话:一次会话中包含多次请求和响应。
	一次会话:浏览器第一次给服务器资源发送请求,会话建立,知道有一方断开为止
功能:在一次会话的范围内的多次请求间,共享数据
方式:
	1.客户端会话技术:Cookie
	2.服务器端会话技术:Session

Cookie:

概念:客户端会话技术,将数据保存到客户端
使用步骤:
	1.创建Cookie对象,绑定数据
		new Cookie(String name, String value)
	2.发送Cookie对象
		response.addCookie(Cookie cookie)
	3.获取Cookie,拿到数据
		Cookie[] request.getCookies()

实现原理:
	基于响应头set-cookie和请求头cookie实现
cookie细节:
	1.一次可以发送多个cookie 创建多个Cookie对象 使用response调用多次addCookiie方法发送cookie
	2.默认情况下,浏览器关闭后,Cookie数据被销毁
		持久化存储:setMaxAge(int secoonds)
			正数:将Cookie数据写到硬盘的文件中,持久化存储,cookie存活时间
			负数:默认值
			零:删除cookie信息
	3.tomcat 8 之前 cookie不能之间存储中文数据 
		tomcat 8 之后 cookie支持中文数据 特殊的不支持,编码
	4.在一个tomcat服务器中,部署了多个web项目,默认情况下cookie不能共享
		setPath(String path) 设置cookie的获取范围 需要共享可以设置“/”
		不同的tomcat服务器间cookie共享:
			setDomain(String path) 设置一级域名相同,多个服务器之间的cookie可以共享
	5.Cookie的特点和作用
		1.cookie存储数据在客户端浏览器
		2.浏览器对于单个cookie的大小有限制 4kb 以及对同以个域名下的总cookie数量也有现在以及对同以个域名下的总cookie数量也有现在 20个
		作用:
			1.cookie一般应用于存出少量的不太敏感的数据
			2.在不登陆的情况下,完成服务器对客户端的身份识别

JSP:

概念:Java Server Pages:java服务器端页面
一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码
简化书写
原理:JSP本质上是一个Servlet

JSP的脚本:JSP定义Java代码的方式
	1.<% 代码 %>:定义的java代码,在service方法中,service方法中可以定义什么,该脚本中就可以定义什么
	2.<%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置
	3.<%= 代码 %>:定义的java代码,会输出到页面上,输出语句可以定义什么就可以
JSP的内置对象:
	在jsp页面中不需要获取和创建,可以直接使用的对象
	一共有9个内置对象

Session:

概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中,HttpSession
Session的实现是依赖于Cookie的
细节:
	当客户端关闭后,服务器不关闭,获取的session默认情况下不是相同的
		如果需要相同,创建Cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存
	客户端不关闭,服务器关闭后,获取的session是不同的
		需要确保数据不丢失,
		session的钝化:
			在服务器正常关闭之前,将session对象序列化到硬盘上
		session的活化:
			在服务器启动后,将session文件转化为内存中的session对象即可
	session的失效时间
session对象被销毁:
	1.服务器关闭
	2.session对象调用invalidate()
	3.session默认失效时间 30分钟 <session-config>
session特点:
	1.session用于存储一次会话的多次请求的数据,存在服务器端
	2.session可以存储任意类型,任意大小的数据
经验分享 程序员 微信小程序 职场和发展