作用域

--------------作用域

request.setAttribute("键","值");  //将数据存储到请求作用域中

request是一个请求对象,它也是请求作用域

存储在request作用域中的数据,只在一个请求中有效,当新的请求产生的时候,存储在之前旧的请求作用域中的数据,就会全部丢失

当新的request作用域产生的时候,之前的request作用域中存储的数据就会全部丢失

产生新的request作用域中的几种情况:

1、表单提交

2、页面跳转(例如,点击超连接)

3、页面刷新

-----------------------

@@@@@@@  存储在request作用域中数据,只要产生了新的请求,之前存储的数据就会丢失

除了请求作用域,还有“会话作用域”,“全局作用域”

请求作用域:  HttpServletRequest

会话作用域:  HttpSession

全局作用域:  ServletContext

--------------------------------------------------------------

会话作用域:    系统会为      "每一个用户"      分配一个作用域,保存该用户在与服务器交互的过程存储的数据,只要用户没有断开与服务器之间的连接,该作用域将一直有效

(这种作用域存储数据的方式,类似于通电话,如果电话接通,该作用域就产生,在这一期间,可以随时向该作用域中存数据或取数据,直到电话被挂断,该作用域才会被销毁)

特点: 这种作用域,与请求没有关系,不管,产生多少个请求,对存储在会话作用域中的数据,都没有任何影响

创建会话作用域的语法:

HttpSession  ses  = request.getSession();  //产生一个会话

ses.setAttribute(key,value); //向会话作用域中存数据

//从会话作用域中,取数据

value  =  ses.getAttribute("key");

//要在页面中,通过EL表达式来取值

${key}

系统会为每一个用户分配一个会话作用域,只存放当前用户的信息,其他用户是不允许访问的

(用户打开一个新的浏览器与服务器建立连接,系统就会认为它是一个新用户,并且,会给当前新用户,分配一个空间,存储当前用户的信息)

1、不管是什么作用域,只要是从作用域取数据:

作用域.getAttribute(key);

2、从作用域取出的数据,必须做强制类型转换

系统会每一个连接到服务器的用户分配一个存储空间,用于存放当前用户的信息,这一个存储空间,就称为"会话作用域"

如果用户连接到服务器端,会话作用域就开始,直到断开与服务器端的连接,会话作用域才会结束

会话作用域被销毁的三种情况:

1、关闭页面

2、如果在一定时间内(页面一直处理闲置状态) (半个小时)

3、调用了ses.invalidate();  //该方法让会话,马上过期

------------------------------------------------------

全局作用域(全局上下文):  ServletContext

这种作用域是最大的作用域,当服务器启动,这个作用域就开始了,当服务器停止,这个作用域才会被销毁

任何用户都可以向该作用域中存数据,任何用户也可以从作用域取得已有数据

语法:

在开发中,能够使用小的作用域,一定要使用小的作用域,因为,作用域大,就会销耗更的资源

request.getParameter("")  与  request.getAttribute("");

request.getParameter(""); 这种方法只能取得表单提交过来的数据,或者是超连接传递过来的数据

--------------------------------------------------------------------------------------------------

request.getAttribute("") ;// 这种方式只能取得作用域中,存储的数据

------------------------------------------------------------------------------------------------

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容