Attribute的設值及取值(Set and Get),以使用者於前端輸入值,傳到Servlet再到Jsp顯示為例。
上圖為創建一個html的頁面,使用form表單及input欄位輸入值後,由button的submit將form表單以POST的方式送到indexServlet。
上圖在Servlet中,用request.getParameter(key),取得前端input欄位中所輸入的值,並用toString()轉為String型態。再用request.setAttribute(key, value);帶入參數值。key為標籤,value為所傳遞的內容值
上圖在Jsp中,只要寫入Jsp顯示籤標語法<%= %>,並在之中寫入request.getAttribute(key),這裡的key帶入在Servlet中所設的標籤名稱即可。最後將會在瀏覽器(這裡用Chrome做示範)傳回Attribute所取得的值。
以上就是一個簡單的透過reqeuest的Attribute傳接值(Set and Get)的方法。
Attribute的傳遞
在使用request的Attribute傳值會取不到值,導致取值的結果為「null」,大多是因為使用的導頁方式response.sendRedirect(url)發生的問題。
不可以使用response.sendRedirect(url);
response.sendRedirect(“index2.jsp”);要用getRequestDispatcher(url)並帶Forward();
request.getRequestDispatcher(“index2.jsp”).forward(request, response);
Attribute的生命週期
透過上圖得知,Servlet可將瀏覽器(Browser)中User所輸入的值;取出並設為(Set)Attribute,再傳到Jsp中。Jsp再(Get) 取得Attribute後;回到瀏覽器(Browser)中顯示。這時在回到瀏覽器(Browser)後,Attribute的值即消失。