session对象
sessionid
- 用户通过浏览器第一次访问服务器的
有效组件
时就会创建SESSION
内置对象。- 有效组件指访问服务器相关类和方法 不包括单纯读取cookie
- 当创建SESSION内置对象时tomcat会利用cookie机制向客户端 分配唯一的一个不会重复的
32
位的session ID
Cookie
就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。
sessionID
是由服务器统一管理的,人为不能控制- 通过
session.getId() session.getId().length()
获取相关具体信息
session判断分析
- 当用户发请求访问某一个组件时服务器都会从客户端取得对 应的SESSIONID
- 若取得 SESSIONID的次数等于1 说明该session为新的。
- 若取得 SESSIONID的次数大于1 说明该session为旧的.
- 通过
session.isNew()
获取相关具体信息 该函数访问一次则返回false
session数据保持分析
- session内置对象可以跨页面·请求传递并保持数据和属性
- 一个请求可以跳转多个页面 看内部代码 一个请求是否结束 看最终功能是否达成
- 会话:一次会话中包含多次请求与响应
- 一次会话的生命周期:浏览器第一次向服务器发送资源请求 会话建立 直到有一方断开连接为止 比如浏览器关了
Attribute
- 存在四大属性内 存哪那取
Parameter
- 存来自前端表单等的数据 使用request对象取
- 四大属性范围都可以存属性 但只有request可以取参数
使session失效相关分析
- 自动注销:如果用户关闭浏览器后,与其对应的
session
并不 能马上失效,而是默认将在900秒后才失效。 - 手工注销:可以调用
invalidate()
方法强行使session
失效 –session.invalidate()
; - 在某一时间内注销:通过在
web.xml
内设置,若用户在某一 时间段内没有操作,让Session
失效 - 关闭浏览器时注销:在js中嵌入注销代码,可实现关闭浏览 器时注销
Session
session
与cookie
session
与Cookie
都用于跨网页共享数据:
SESSIONID
记录独有的个人信息,在不同页面间传递
使用setAttribute和getAttribute方法设置和获取属性数据
Cookie
数据保持在浏览器客户端:
cookie用于在浏览器和服务器之间的纯文本数据,当浏览器访问 服务器时会创建一个cookie保持在浏览器
session将信息保存在服务器上,而cookie保存在客户端上 session比cookie更安全, session比cookie更占用资源
开发的原则 :
session要尽量少使用 —— 尽量少向session中 保存信息 session使用了cookie的机制,如果cookie被禁用,则session也 无法使用
补充Java知识
== 的作用
基本类型:比较的就是值是否相同
引用类型:比较的就是地址值是否相同
equals 的作用:
引用类型:默认情况下,比较的是地址值。
注:不过,我们可以根据情况自己重写该方法。一般重写都是自动生成,比较对象的成员变量值是否相同