2007年1月12日
兩個(gè)jsp頁(yè)面之間如何傳遞一個(gè)對(duì)象?比如一個(gè)List或者HashMap?
答:
用request.setAttribute("name",Object),request.getAttribute("name");
或者session.setAttribute("name",Object),session.getAttribute("name");
注意問(wèn)題:
- 如果用request,要注意request的范圍僅限于同一個(gè)request對(duì)象;如果使用了form的"action"或者response.sendRedirect("xxx.jsp")等調(diào)轉(zhuǎn),則不再是同一個(gè)request對(duì)象,即用request.getAttribute("name")將取不到值。
- 換成request.getRequestDispatcher("xxx.jsp").forward(request,response);
才能共享request中數(shù)據(jù)
- 如果用session,程序太慢,存在效率問(wèn)題。
基礎(chǔ)問(wèn)題:
1,所有再頁(yè)面提交的數(shù)據(jù),在ACTION里只能通過(guò)request.getParameter( or values).
2,要想通過(guò)attribute傳輸數(shù)據(jù),必須保持在同一個(gè)request中,不論中轉(zhuǎn)了幾次(forward)。
另:參考資料:
請(qǐng)教一下關(guān)于request.setAttribute()的用法,謝謝.[急!在線(xiàn)等!]
http://www.tkk7.com/flysky19/admin/EditArticles.aspx
問(wèn)題:
我在myServlet.java的doGet()中寫(xiě)道:
request.setAttribute("a","111");
response.sendRedirect("a.jsp");
我的doPost()方法是這樣寫(xiě)的:
doGet(request, response);
我在a.jsp中寫(xiě)道:
String aValue="";
if(request.getAttribute("a")!=null){
? aValue= String.valueOf(request.getAttribute("a"));
? }
out.println(aValue);
可request.getAttribute("a")總是取不到值, 是我錯(cuò)誤地使用了request.setAttribute()方法嗎? 如果想讓servlet給jsp頁(yè)面?zhèn)饕恍┲祽?yīng)該通過(guò)什么方法呢? 謝謝~
解決:
response.sendRedirect("a.jsp");
換成
request.getRequestDispatcher("a.jsp").forward(request,response);
才能共享request中數(shù)據(jù)