Request与Session的存值取值操作
Request与Session的存值取值
getattribute方法返回类型
request域的存值:
request可以直接set进去
request.setAttribute("request", value);
request域的取值有两种⽅式:
"${request}"
------------
"${quest}"
或者想获取key值中某⼀个valueBean对象
"${request.name}"
session域的存值:
session需要先get⼀下获取session然后才能set进去key,value值
----------------------------------------------------
HttpSession session = Session();
session.setAttribute("session", value);
session域的取值:
"${sessionScope.session}"
Request和Session的区别
说简单点 request对象和session对象的最⼤区别是⽣命周期。
request
request范围较⼩⼀些,只是⼀个请求。
request对象的⽣命周期是针对⼀个客户端(说确切点就是⼀个浏览器应⽤程序)的⼀次请求,当请求完毕之后,request⾥边的内容也将被释放点。
简单说就是你在页⾯上的⼀个操作,Parameter()就是从上⼀个页⾯中的url、form中获取参数。
但如果⼀个request涉及多个类,后⾯还要取参数,可以⽤request.setAttribute()和Attribute()。
但是当结果输出之后,request就结束了。
session
session可以跨越很多页⾯。
⽽session的⽣命周期也是针对⼀个客户端,但是却是在别⼈设置的会话周期内(⼀般是20-30分钟),session⾥边的内容将⼀直存在,即便关闭了这个客户端浏览器 session也不⼀定会马上释放掉的。
可以理解是客户端同⼀个IE窗⼝发出的多个请求。
这之间都可以传递参数,⽐如很多⽹站的⽤户登录都⽤到了。
⽐较
request占⽤资源⽐较少,安全性也⽐较⾼,可是相对来说缺乏持续性。
session则相对来说对资源的消耗会⼤点,安全性相对来说也会稍微低点,可是它能实现⽐如会话跟踪技术。
如果可以使⽤request的情况下,尽量使⽤request 因为相对于服务器来说资源的消耗还是⽐较重要的。
在传递页⾯过程中request传递到下⼀页⾯就不能再传递了,⽽sesison却不如此,即request仅限于2个相邻的页⾯
每按⼀个⽹页上的⼀个链接就是⼀个新的request,当服务器返回给浏览器⼀个response时,request就结束了,此时保存在request中的对象就不存在了,
但是当你⽤⼀个浏器连到服务器上时application-server会新开⼀个session给你,当连接超时或浏览器关闭时session才销毁。
所以说作⽤的范围是不⼀样,session也就可以跟踪⽤户的状态。
session相当于是⼀个客户端的全局变量,
⽐如A机与服务器第⼀次访问时设置session.setAttribute("aaa")="ComputerA".则在A机访问继续访问的任意⼀个页⾯都可以取的Attribute("aaa")的值是ComputerA;
request是某⼀次访问的局域变量,
⽣命周期只是⼀次请求。因此login的变量应该放在session中
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。