--------------作用域
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("") ;// 这种方式只能取得作用域中,存储的数据
------------------------------------------------------------------------------------------------