当前位置: 代码迷 >> Java Web开发 >> request.setAttribute的有关问题
  详细解决方案

request.setAttribute的有关问题

热度:100   发布时间:2016-04-17 14:21:14.0
request.setAttribute的问题
我在页面A.jsp里面用到request.setAttribute( "a ", "love ");   然后在A.jsp页面里使用response.sendRedirect( "B.jsp ");在B.jsp里用request.getAttribute( "a ");取值,得到的却是空,为什么request.setAttribute()不能将值传递到下一个页面去呢?换成session就没问题

------解决方案--------------------
response.sendRedirect 会产生新的request
------解决方案--------------------
sendRedirect会清空request里面的数据的
------解决方案--------------------
楼上两位说的是其一
request和
session这两个的作用范围..

-----------------
J2EE技术交流QQ群:6890959
欢迎大家加入,
一起切磋交流,
共同进步!
群空间有很多好东西下载..
------解决方案--------------------
1.request请求对象的作用域只限在当前的一次请求。
方法一:response.sendRedirect( "请求的资源的URL ");
如:response.sendRedirect( "index.do ");response.sendRedirect ( "index.jsp ");response.sendRedirect( "indexServlet ");叫请求重定向。
这个会是上次的请求对象的值全部丢失。
方法二:request.getRequestDispatcher( "index.do ").forward(request,response);
request.getRequestDispatcher( "index.jsp ").forward(request,response);
request.getRequestDispatcher( "indexServlet ").forward(request,response);
叫请求转发,它会延长request的生命周期。



------解决方案--------------------
Redirect 是重定向
------解决方案--------------------
方法二:request.getRequestDispatcher( "index.do ").forward(request,response);
request.getRequestDispatcher( "index.jsp ").forward(request,response);
request.getRequestDispatcher( "indexServlet ").forward(request,response);
叫请求转发,它会延长request的生命周期。
这个真的能延长request的生命周期????????????????
你从哪看来的....
楼主可以把要传的值以参数形式传到下个页面.
------解决方案--------------------
response.sendRedirect( "B.jsp ");只是重定向,浏览器端跳转,不能传送数据

所以要用RequestDisPatcher
例如:
RequestDisPatcher view = request.getRequestDispatcher( "B.jsp ");
view.forword(request,response);
------解决方案--------------------
楼上正解.可以用FORWARD
------解决方案--------------------
up

RequestDisPatcher view = request.getRequestDispatcher( "B.jsp ");
view.forword(request,response);
  相关解决方案