您的位置:首页 > 产品设计 > UI/UE

两个JSP页面之间如何传递一个对象?比如一个LIST或者HASHMAP?以及为什么有时候REQUEST.GETATTRIBUTE("NAME")取不到值?

2013-04-10 10:10 1011 查看
2007年1月12日

两个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.blogjava.net/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);

from : http://www.blogjava.net/flysky19/articles/93421.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐