日期:2014-05-17  浏览次数:20873 次

getRequest().setAttribute和getRequest().getsession.setAttribute 有区别吗
getRequest().setAttribute和getRequest().getsession.setAttribute 有区别吗

------解决方案--------------------
肯定有的,一个是把对象放入到request当中,后一个是把对象放入到session当中,其主要不同在于使用范围。
如果是request那只能在当前请求中可以使用,而如果是session当中,那么你的整个回话访问都可以使用。
------解决方案--------------------
肯定有。
一个是全局性的getRequest().getsession.setAttribute 只要你浏览器不关闭,不清空session对象,set后,任何地方取这个值,都能有。
一个是局部用完后清空的。request.setAttribute();这个只能一次存取。本次操作完毕后自动清空。
------解决方案--------------------
呵呵,楼主你好!首先我们来分析一下!你这个问题!

问题:getRequest().setAttribute和getRequest().getsession.setAttribute 有区别吗

解释:对于jsp来说共有四种取值范围,

1、page 2、request 3、session 4、application
对不对,楼主!

分析:那么我怎么给这种取值的变量里面设置呢?供外边的对象取值呢?这个问题就牵扯到你提的这个问题了!
要想取值,那肯定得先设置对吧!不设置怎么取值!

所以:想去request级别的值怎么办:就通过你的这句代码了:getRequest().setAttribute()
 
那如果想在session里面取值,也一样:getRequest().getsession.setAttribute()

问题分析好了!

但是两种方式肯定有不好地方,如果都那么的好的话,干嘛还会出现两种呢?肯定是互补作用!这个就是楼主所说的区别!也可以说优缺点!

区别:getRequest().setAttribute()是存放在当前请求中的,请求结束也相应的清除request内的数据
getRequest().getsession.setAttribute()是存放在session范围内的,在回话期间访问,回话丢失,或者过期,或者关闭浏览器,则清除session内的数据!