Jsp
 
 
Jsp的四大域对象
 
作用范围
特殊之处
 
pageContext
当前jsp页面,当转发就失效
可以获取其他域对象中的值
 
request
一次请求,转发公用request,重定向之前的request失效
注意重定向和转发
 
session
一次会话
详情见下面
 
appliction(相当于java中的ServletContext)
项目启动期间都有效,直到项目关闭
整个项目启动期间都有效
 
关于session的有效期:
 
Session是会话技术关键节点之一,C第一次访问S,S端会产生一个唯一的值 key,并且在Session池中创建了一个Session,key就是他的唯一id,我们这里往session中setAttribute一个key 为name,值为xl的属性,这个Session的有效时长是可以设置的,默认tomcat中会给session一个默认时间30分钟,当然session也可以自己销毁,在响应头中 set-Cookie 属性上 放 上JSESSIONID=8C394A064383BDA072D63EE10CF481B1上,其实就是
session1.setMaxInactiveInterval(100); //设置session的有效时长 单位秒
session1.invalidate();//session自己销毁
 
response.addCookie(new Cookie("JSESSIONID", "8C394A064383BDA072D63EE10CF481B1"));
也就是S在响应中给了C一个名为  JSESSIONID的cookie,
 
这个cookie的有效期呢,就要讨论cookie的保存形式了, 
cookie这边可以设置有效时间(单位秒)
c.setMaxAge(1200);
cookie的默认有效时长,是浏览器关闭就结束,这种cookie叫做会话cookie,还有一种叫做持久化cookie,设置cookie有效时长,会把cookie保存到硬盘上,关闭浏览器下一次再打开是cookie还存
 
 
Ok ! 继续session,我们之前说到S给了C一个名为 JSESSIONID的cookie,这个cookie是会话cookie,即关闭浏览器就会结束。这里有一个会话时长的概念,即用户访问浏览器直到用户关闭浏览器或者服务器关闭,这段时间成为一个会话。
C第二次访问 S,会把这个名为 JSESSIONID的cookie 带上,去访问S,S也会根据JSESSIONID找到指定的session,如果没有找到创建一个重复第一次访问的流程;找到了即可xxAttrbute().
 
那么问题来了,虽然session的有效默认时长是30 分钟,但是 名为 JSESSIONID的cookie 是会话cookie,有效期 只有一个 会话时长,即 关闭浏览器 cookie失效,所以当关闭浏览器后,JSESSIONID的cookie 是会话cookie失效了,但之前session还是有效的,我们C再次访问S,及时Session池中有之前的session,但我们没有名为 JSESSIONID的cookie,所以我们只能再次走 第一次访问S的流程, 又重新创建产生一个唯一的值 key,并且在Session池中创建了一个Session,key就是他的唯一id。
所以之前的key 为name ,值为xl 的属性就去不到了,因为是两个不同的session了。
 

最新文章

  1. 用powershell批量新增user profile
  2. 删除html元素
  3. 用Gen8服务器来学习虚拟化ESXI
  4. [MSSQL2005]再看CTE
  5. 运用cookie登陆人人网爬取数据
  6. TList,TObjectList 使用——资源释放
  7. 给jdk写注释系列之jdk1.6容器(12)-PriorityQueue源码解析
  8. Openstack Ceilometer监控项扩展
  9. EasyUI - Combo组件
  10. 一个经典的js中关于块级作用域和声明提升的问题
  11. 老李推荐:第5章3节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 启动脚本
  12. 日期时间插件flatpickr.js使用方法
  13. 洗礼灵魂,修炼python(89)-- 知识拾遗篇 —— 进程
  14. HashMap的tableSizeFor方法解读
  15. interface21 - web - Log4jConfigListener(Log4j加载流程)
  16. vue系列之webpack
  17. maven项目依赖jar包报 java.lang.classnotfoundexception:Type com.xx.xx.xxx not present 的解决
  18. UVa 442 Matrix Chain Multiplication(栈的应用)
  19. libev loop_init分析
  20. vue引入elementUI 报错

热门文章

  1. python使用代理ip
  2. 下载git2.2.1并将git添加到环境变量中
  3. WebGL简易教程(九):综合实例:地形的绘制
  4. kotlin系列文章 --- 3.条件控制
  5. JSON说明
  6. 色即是空,空即是色---java有关null的几件小事
  7. 【DP合集】背包 bound
  8. 禅道部署(基于Linux)
  9. vue-cli 中stylus写样式莫名报错?
  10. Chrome常见黑客插件及用法