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了。
 

Jsp的四大域对象的更多相关文章

  1. 牛客网Java刷题知识点之什么是JSP、JSP有哪些优点、JSP的9大内置对象、JSP的四大域对象、JSP的四种范围

    不多说,直接上干货! https://www.nowcoder.com/ta/review-java/review?tpId=31&tqId=21175&query=&asc= ...

  2. JSP九大内置对象及其作用以及四大域对象

    一,什么是内置对象? 在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创 ...

  3. jsp 九大内置对象和其作用以及四大域对象

    感谢作者:Fangcf. 链接:https://blog.csdn.net/qq_39320833/article/details/80818442 一.jsp 九大内置对象 方法简单介绍:https ...

  4. 四大域对象,和jsp的九大隐式对象,已经el表达式的11个隐式对象

    四大域对象 1.PageContext :页面范围的数据 2.ServletRequest:请求范围的数据 3.HttpSession:回话范围的数据 4.ServletContext:应用范围的数据 ...

  5. JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

    一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...

  6. JSP--JSP语法--指令--include(动态包含/静态包含)--九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

    一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1.    JSP模板元素:JSP中HT ...

  7. JSP九大隐式对象和四大域对象-----面试

    因为jsp实质是一个Servlet对象:jsp在第一次访问时会被Web容器翻译成Servlet,在执行过程:第一次访问---->inex.jsp---->index_jsp.java--- ...

  8. JSP四大域对象与九大内置对象

    什么是内置对象? 在jsp开发中会频繁使用到一些对象,如 ServletContext.HttpSession.PageContext 等: 如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手 ...

  9. JSP 4个域对象-9个内置对象-11个EL隐式对象

    一. 四大域对象 1. PageContext :页面范围的数据 2. ServletRequest:请求范围的数据 3. HttpSession:会话范围的数据 4. ServletContext: ...

随机推荐

  1. 【柠檬班】史上最简单的Jmeter跨线程组取参数值的两种办法(不写代码)【原创】

    如果你工作中已经在用jmeter做接口测试,或性能测试了,你可能会遇到一个麻烦,哪就是jmeter的变量值不能跨线程组传递.   看,官方就已经给出了解释.这个不是jmeter的缺陷,这是jmeter ...

  2. Thinkphp5.0第四篇

    删除数据 当前模型删除 $user=UserModel::get(1); if($user->delete()){return '删除成功';} else{return '删除失败';} 根据主 ...

  3. [UWP] 解决FlipView图片放大的诡异bug

    想要实现图片的放大缩小可以通过在Image外面套一个ScrollViewer,然后设置ScrollViewer的ZoomMode="Enabled" <FlipView It ...

  4. 电信资源管理系统:基于 H5 叠加 OpenLayers3 GIS

    前言 通过结合 HTML5 和 OpenLayers 可以组合成非常棒的一个电信地图网络拓扑图的应用,形成的效果可以用来作为电信资源管理系统,美食定位分享软件,片区找房,绘制铁轨线路等等,各个领域都能 ...

  5. SpringBootSecurity学习(23)前后端分离版之OAuth2.0 其它模式

    密码模式 前面介绍了授权码模式和刷新令牌两种获取最新令牌的方法,下面来看一下其它模式.首先看密码模式,我们默认配置的三种模式中其实就包含密码模式的支持: 因此我们启动项目,直接使用密码模式即可,访问地 ...

  6. HTML5 + WebGL 实现的垃圾分类系统

    前言 垃圾分类,一般是指按一定规定或标准将垃圾分类储存.分类投放和分类搬运,从而转变成公共资源的一系列活动的总称.分类的目的是提高垃圾的资源价值和经济价值,力争物尽其用.垃圾在分类储存阶段属于公众的私 ...

  7. Android 世界中,谁喊醒了 Zygote ?

    本文基于 Android 9.0 , 代码仓库地址 : android_9.0.0_r45 文中源码链接: SystemServer.java ActivityManagerService.java ...

  8. Python3程序设计指南:01 过程型程序设计快速入门

    大家好,从本文开始将逐渐更新Python教程指南系列,为什么叫指南呢?因为本系列是参考<Python3程序设计指南>,也是作者的学习笔记,希望与读者共同学习. .py文件中的每个估计都是顺 ...

  9. linux ln命令 建立文件夹桌面快捷方式

    指令如下: sudo ln -s /root/myhack/ /root/Desktop 以上指令是创建软链接到桌面. 指令解析: ln -s是创建软链接指令,如果不加-s则是创建硬链接.

  10. Ubuntu 设置默认以Root用户身份登录

    系统 :Linux ubuntu 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 G ...