jsp四大作用域介绍_My--Style的博客-程序员信息网_jsp作用域

技术标签: jsp  

一、pageContext域—(PageContext)

1、生命周期:当对JSP的请求时开始,当响应结束时销毁。  

2、作用范围:整个JSP页面,是四大作用域中最小的一个。

二、request域  --(HttpServletRequest)

  1、生命周期:在service 方法调用前由服务器创建,传入service方法。整个请求结束,request生命结束。  

  2、作用范围:整个请求链(请求转发也存在)。  

  3、作用:  在整个请求链中共享数据。最常用到:在Servlet 中处理好的数据交给Jsp显示,此时参数就可以放置在Request域中带过去。

三、session 域 (HttpSession)

    HttpSession 在服务器中,为浏览器创建独一无二的内存空间,在其中保存会话相关的信息。  

    1、生命周期:在第一次调用 request.getSession() 方法时,服务器会检查是否已经有对应的session,如果没有就在内存  中创建一个session并返回。   当一段时间内session没有被使用(默认为30分钟),则服务器会销毁该session。如果服务器非正常关闭(强行关闭),没有到期的session也会跟着销毁。 如果调用session提供的invalidate() ,可以立即销毁session。   

   注意:服务器正常关闭,再启动,Session对象会进行钝化和活化操作。同时如果服务器钝化的时间在session 默认销毁时间之内,则活化后session还是存在的。否则Session不存在。  如果JavaBean 数据在session钝化时,没有实现Serializable 则当Session活化时,会消失。

  2、作用范围:一次会话。  

     3、作用:保存登录的用户信息、购物车信息等

四、application(ServletContext)

1、生命周期:当Web应用被加载进容器时创建代表整个web应用的application对象,当服务器关闭或Web应用被移除时,application对象跟着销毁。  

2、作用范围:整个Web应用。

3、作用:   

     a)application.setAttribute(“key”,Object value):存储整个web应用公用的数据

b)在不同Servlet 之间转发(不常用)    this.getServletContext().getRequestDispatcher("/servlet/Demo10Servlet").forward(request,response);   

   方法执行结束,service就会返回到服务器,再有服务器去调用目标servlet,其中request会重新创建,并将之前的request的数据拷贝进去。      

注意:由于request对象也有getRequestDispatcher("**")方法,所有我们开发是通常使用request调用该方法实现重定向。

c)读取资源文件。

1、由于相对路径默认相对的是java虚拟机启动的目录,所以我们直接写相对路径将会是相对于tomcat/bin目录,所以是拿不到资源的。如果写成绝对路径,当项目发布到其他环境时,绝对路径就错了。    

  2 、为了解决这个问题ServletContext提供了:

  this.getServletContext().getRealPath("/1.properties"),给进一个资源的虚拟路径,将会返回该资源在当前环境下的真实路径。        

this.getServletContext().getResourceAsStream("/1.properties"),给一个资源的虚拟路径返回到该资源真实路径的流。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36961226/article/details/112556156

智能推荐

x86 和 x64 到底是什么意思?_金融女魔头的博客-程序员信息网_x86x64

x86 就是我们一般用的32位的系统,x64 就是64位的系统所以当我们下载软件的时候,要根据自己电脑的系统配置,下载相应的软件版本,例如 visual c++:

Simple Mover_尘埃落定123的博客-程序员信息网

先完成该项任务用ROS写一个简单的节点,名为simple_mover。正如它的名字一样,该节点只有一项任务,命令simple_arm的关节运动。为了完成该项任务,节点必须发布关节角消息到以下话题中: 添加脚本目录scripts cd ~/catkin_ws/src/simple_arm/ mkdir scripts创建一个新的脚本一旦scripts目录创建好了...

repeated pB_sphinxlike的博客-程序员信息网_pb repeated

repeated关键字其实protobuf处理这个字段的时候,也是optional字段一样,另外加了一个count计数变量,用于标明这个字段有多少个,这样发送方发送的时候,同时发送了count计数变量和这个字段的起始地址,接收方在接受到数据之后,按照count来解析对应的数据即可。“组”是指在消息定义中嵌套信息的另一种方法。一个“组”只是简单地将一个嵌套消息类型和一个字段捆绑到一个单独的声明中。 protobuf repeated类型相当于std的vector,可以用来存放N个相同类型的内容..

Android四种启动模式_一个程序员、的博客-程序员信息网_android 启动模式

1、standard:标准模式,也是默认启动模式,每次启动Activity都会创建一个新的实例放入栈顶2、singleTop:栈顶模式,启动Activity时如果栈顶存在该Activity实例,则复用栈顶实例,如果栈内不存在改Activity实例或者实例不在栈顶,则创建新的Activity实例并放入栈顶3、singleTask:如果栈内存在该Activity实例则复用,并将为该实例之上的Activity全部移除堆栈,郭茹栈内不存在实例,则创建4、singleInstance:一个单独的堆栈,栈内

[转载]【苹果千层派】轻松玩转酥皮_万金油_新浪博客_坑人螺丝钉的博客-程序员信息网

原文地址:【苹果千层派】轻松玩转酥皮作者:千百度的小厨房 早上起床,窗外一片白茫茫,天空中飘起了片片雪花,武汉下雪了。孩子的爷爷,我的公公昨天下午住院了,今天开始我要负责全家的饮食,对我来说是小菜一碟。公公最不爱上医院了,不舒服都要在家吃药打针,这次住院他一百个不乐意,好在住在高干病房,环境很好,我们轮番陪护,让他安心,希望他早日康复。【食材】千层酥皮一份、苹果1个、细砂...

数据结构实验之链表七:单链表中重复元素的删除 SDUT_LqingX的博客-程序员信息网

数据结构实验之链表七:单链表中重复元素的删除 SDUTTime Limit: 1000 ms Memory Limit: 65536 KiBSubmit StatisticProblem Description按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个)。Input第一行输入元素个数 n (1 <= n <=...

随便推点

oracle数据库面试题及答案_猿·随笔的博客-程序员信息网_oracle数据库面试题

oracle数据库面试题及答案:1、 简述表空间和数据文件之间的关系。2、 概述Oracle数据库体系的物理结构。3、 简要介绍表空间、段、区和数据块之间的关系。4、 简述Oracle实例系统中各后台进程的作用。5、 简述Oracle初始化参数文件。6、 简述启动数据库时的状态。7、 简述数据库的各种关闭方式。8、 简述角色的优点。9、 段的主要类型及作用?10、Oracle实例和数据库的概念和关系是什么?11、SGA的各个组成部分的名称和作用,PGA与它有什么区别?12、简述行迁.

什么是RRU和BBU_dragon_cdut的博客-程序员信息网_bbu和rru

原文地址:https://wenku.baidu.com/view/6488e5397cd184254b3535d3.htmlRRU是Radio Remote Unit 射频拉远模块,它是将数字基带信号转换成高频(射频)信号,并将高频(射频)信号送到天线辐射出去。BBU是Building Baseband Unit 室内基带处理单元。基带BBU集中放置在机房,RRU可安装至楼层,BBU与R...

linux中替换\N换行命令sed_极客威的博客-程序员信息网_linux sed 替换换行

场景:在数据文件.dat中存在2020-01-01|小米|\N|绿色导致gpload数据无法进入现采用sed -i ‘s/\\\N//g’ 使换行替换为空

使用pg_upgrade升级pg数据库的大版本。_没有自制力的天蝎的博客-程序员信息网

pg_upgrade 是 PostgreSQL 提供的一个大版本升级工具,例如将 PG 从版本 9.4 升级到 9.6, 可以跨多个大版本升级, 当然也可以用 pg_dump ,之后再 pg_restore 到新版本 PG 软件的方法, 当数据库比较大时,比如 1 TB 以上,pg_dump/pg_restore 的方法太费时了,这里介绍使用 pg_upgrade 将 PostgreSQL 版本

推荐文章

热门文章

相关标签