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")等調(diào)轉(zhuǎn),則不再是同一個request對象,即用request.getAttribute("name")將取不到值。
  • 換成request.getRequestDispatcher("xxx.jsp").forward(request,response);
    才能共享request中數(shù)據(jù)
  • 如果用session,程序太慢,存在效率問題。

基礎問題:
1,所有再頁面提交的數(shù)據(jù),在ACTION里只能通過request.getParameter( or values).
2,要想通過attribute傳輸數(shù)據(jù),必須保持在同一個request中,不論中轉(zhuǎn)了幾次(forward)。


另:參考資料:
請教一下關(guān)于request.setAttribute()的用法,謝謝.[急!在線等!]
http://m.tkk7.com/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頁面?zhèn)饕恍┲祽撏ㄟ^什么方法呢? 謝謝~



解決:
response.sendRedirect("a.jsp");
換成
request.getRequestDispatcher("a.jsp").forward(request,response);
才能共享request中數(shù)據(jù)