呃,这个
放request里面请求结束就会失去作用,放到session中去的话,貌似在整个会话过程中一直有效,如果什么都放进去,岂不是要往里面堆很多东西,

解决方案 »

  1.   


    首先,scope="request"相当于request.setAttribute("list", list);相当于把值放到request里面,在另一个页面里取出来进行显示。forward只是服务器端的跳转,是指同一个请求,不要和scope混起来,一般在前一个请求中带了一些参数,传到的页面可以接收这些参数。还有request不可以用session代替,它们存在必然有好处,一般我们只是一次访问页面的话,最好把要显示的东西放到request中,这样这次请求结束后,request里面的值就空了。而session的话,在这个会话之中都存在,你要是什么东西都往session里放的话,那么服务器端用来维护session的开销会非常大,而且如果浏览器不关,session里的东西永远存在,还得手动清除。所以一般情况下,如果不是用在多页面连续传递,要带前一个或再往前的数据过来的话,一般不用session作为scope的范围,所以,request不能被session代替。
      

  2.   

    request中保存的数据生命周期相对短一点,一般只会保存与此请求相关的数据。session中保存的数据生命周期相对长一点,一般保存同一个用户的多个request只见共享的数据,request和session尤其不同的作用,如果把数据都保存到request中,这样在多个request之间共享数据就比较麻烦了;同样如果把数据都保存到session中,这样session中保存的数据会快速增长,对内存消耗太大,如果要减少内存消耗,不得不处理session中的数据释放的问题。