jsp request.getAttribute 取不到值
servlet:req.setAttribute("lbs1",lbs);session.setAttribute("lbs1",lbs);resp.sendRedire...
servlet:
req.setAttribute("lbs1",lbs);
session.setAttribute("lbs1",lbs);
resp.sendRedirect(url);
jsp:
ArrayList lbss = new ArrayList();
lbss = (ArrayList)request..getAttribute("lbs1");
后来我尝试用session 但是我这是搜索返回页面 如果用session 总是取到第一次的结果
我上网搜了下 人家说request有范围 看了半天也没看懂什么意思
高手们帮助下啊 解释清楚继续加分 展开
req.setAttribute("lbs1",lbs);
session.setAttribute("lbs1",lbs);
resp.sendRedirect(url);
jsp:
ArrayList lbss = new ArrayList();
lbss = (ArrayList)request..getAttribute("lbs1");
后来我尝试用session 但是我这是搜索返回页面 如果用session 总是取到第一次的结果
我上网搜了下 人家说request有范围 看了半天也没看懂什么意思
高手们帮助下啊 解释清楚继续加分 展开
7个回答
展开全部
楼主得问题主要是处在这里:
resp.sendRedirect(url); 这个是重定向;
应该用RequestDispatcher;
这个是都是什么意思呢?转化成生活语言就是:
我是浏览器,你是servlet。我给你发了个请求(request)让你帮我去买烟。
但是你不想去,你给了我个回了个响应告诉我:你去找XXX.jsp(就是你写得那个JSP),他会帮你买。我收到响应后,又重新给XXX.JSP发了个请求(之前你在request存得东西就没了,那个requset被销毁了),所以你取不出来。这就是重定向。
什么叫RequestDispatcher呢。就是说。我给让你给我去买烟但是你不想去,这时候你没告诉我你不想去,你直接把request给了xxx.jsp让他去买(这时候没有新建requset,所以你在JSP里能取出来存得值),他买了之后吧烟给你了,你又吧烟给我了,但是我不知道这烟是xxx.jsp买的,我只知道是你(servlet)买得。
就是这个意思。希望你能明白。
也就是说,如果你在 A 里存了个东西 想在 B 里取出来。
如果你用了resp.sendRedirect(url); ,就要吧东西存在session里,在 B 里
用session取。
如果你用了RequestDispatcher rd = request.getRequestDispatcher("url");
rd.forward(request, response); 那么你就可以存在requset里。
resp.sendRedirect(url); 这个是重定向;
应该用RequestDispatcher;
这个是都是什么意思呢?转化成生活语言就是:
我是浏览器,你是servlet。我给你发了个请求(request)让你帮我去买烟。
但是你不想去,你给了我个回了个响应告诉我:你去找XXX.jsp(就是你写得那个JSP),他会帮你买。我收到响应后,又重新给XXX.JSP发了个请求(之前你在request存得东西就没了,那个requset被销毁了),所以你取不出来。这就是重定向。
什么叫RequestDispatcher呢。就是说。我给让你给我去买烟但是你不想去,这时候你没告诉我你不想去,你直接把request给了xxx.jsp让他去买(这时候没有新建requset,所以你在JSP里能取出来存得值),他买了之后吧烟给你了,你又吧烟给我了,但是我不知道这烟是xxx.jsp买的,我只知道是你(servlet)买得。
就是这个意思。希望你能明白。
也就是说,如果你在 A 里存了个东西 想在 B 里取出来。
如果你用了resp.sendRedirect(url); ,就要吧东西存在session里,在 B 里
用session取。
如果你用了RequestDispatcher rd = request.getRequestDispatcher("url");
rd.forward(request, response); 那么你就可以存在requset里。
展开全部
session物件是属性物件在同一个进程中提供的
而request是表示在同一个jsp连接中的,
这两个是可以混用的,不过只能用request可以得到sossion的值,
但不能倒着用,
你要session.setAttribute("lbs1",lbs);前面后面各打印一下,
看看能不能得到session
而request是表示在同一个jsp连接中的,
这两个是可以混用的,不过只能用request可以得到sossion的值,
但不能倒着用,
你要session.setAttribute("lbs1",lbs);前面后面各打印一下,
看看能不能得到session
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你往session里存 request怎么能拿到呢?
应该是:lbss = (ArrayList)session.getAttribute("lbs1");
如果你想拿到request那个
不能用转发,把resp.sendRedirect(url); 改成
重定向request.getRequestDispatcher(url).forward(request,response);//url就是(/xx.jsp)
应该是:lbss = (ArrayList)session.getAttribute("lbs1");
如果你想拿到request那个
不能用转发,把resp.sendRedirect(url); 改成
重定向request.getRequestDispatcher(url).forward(request,response);//url就是(/xx.jsp)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当程序运行时,如果把一个值存在session中,那么除非你关闭窗口,或者调用关闭session的方法,否则session中的值,就一直存在于内存中。
request的话,就是页面与页面之间传递值。
request的话,就是页面与页面之间传递值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
request跟session是不一样的,你应该分别取值,这样才能取到2个值:
request.getAttribute("lbs1",lbs);
session.getAttribute("lbs1",lbs);
request.getAttribute("lbs1",lbs);
session.getAttribute("lbs1",lbs);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询