分享

两个jsp页面之间如何传递一个对象?比如一个List或者HashMap?以及为什么有时候r...

 真爱图书 2011-12-19
两个jsp页面之间如何传递一个对象?比如一个List或者HashMap?
答:
用request.setAttribute("name",Object),request.getAttribute("name");
或者session.setAttribute("name",Object),session.getAttribute("name");

注意问题:
  • 如果用request,要注意request的范围仅限于同一个request对象;如果使用了form的"action"或者response.sendRedirect("xxx.jsp")等调转,则不再是同一个request对象,即用request.getAttribute("name")将取不到值。
  • 换成request.getRequestDispatcher("xxx.jsp").forward(request,response);
    才能共享request中数据
  • 如果用session,程序太慢,存在效率问题。

基础问题:
1,所有再页面提交的数据,在ACTION里只能通过request.getParameter( or values).
2,要想通过attribute传输数据,必须保持在同一个request中,不论中转了几次(forward)。


另:参考资料:
请教一下关于request.setAttribute()的用法,谢谢.[急!在线等!]
http://www./flysky19/admin/EditArticles.aspx

问题:
我在myServlet.java的doGet()中写道:
request.setAttribute("a","111");
response.sendRedirect("a.jsp");

我的doPost()方法是这样写的:
doGet(request, response);

我在a.jsp中写道:
String aValue="";
if(request.getAttribute("a")!=null){
  aValue= String.valueOf(request.getAttribute("a"));
  }
out.println(aValue);

可request.getAttribute("a")总是取不到值, 是我错误地使用了request.setAttribute()方法吗? 如果想让servlet给jsp页面传一些值应该通过什么方法呢? 谢谢~



解决:
response.sendRedirect("a.jsp");
换成
request.getRequestDispatcher("a.jsp").forward(request,response);
才能共享request中数据

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多