大家好,又見面了,我是你們的朋友全棧君。
在學drp項目的時候,經常用到getAttribute()這個方法,于是又聯想到了之前在ssh中用到的getParameter(),他們之間有什麼差別呢?
1.擷取的值不同
getAttribute表示從request範圍取得設定的屬性,必須要通過setAttribute設定屬性,才能通過getAttribute取得。設定和取得的值都是Object類型。
getParameter表示接收頁面送出的 參數,主要有表單送出的參數、URL重寫傳遞的參數(http://item.jsp?id=1中的id值)等,是以不需要通過setParameter來設定參數,而且參數的傳回類型是String類型。
2.資料傳遞路徑不同
request.getParameter()方法傳遞的資料是從web用戶端到web服務端,代表http的請求資料,用于表單或URL重定向時使用。
舉例:
比如兩個web頁面之間的轉換,準确的說是兩個web頁面時連結關系時,從login.jsp連結到menu.jsp時,menu.jsp就可以通過getParameter()方法來獲得請求參數。
login.jsp:
<%
String username=request.getParameter("username");
request.setAttribute("username",username);
%>
<jsp:forward page="menu.jsp" />
複制
<form name="form1" method="post" action="menu.jsp">
請輸入使用者姓名:<input type="text" name="username">
<input type="submit" name="Submit" value="送出">
</form>
複制
menu.jsp中則可通過request.getParameter(“username”)方法來獲得請求的參數username:
< % String username=request.getParameter("username"); %>
複制
request.getAttribute()傳遞的資料隻存在于web容器内部,在request範圍内也就是轉發時web元件之間的共享。
舉例:
login.jsp想要向menu.jsp傳遞目前的使用者名,首先要在login.jsp中調用setAttribute()方法:
<%
String username=request.getParameter("username");
request.setAttribute("username",username);
%>
<jsp:forward page="menu.jsp" />
複制
在menu.jsp中通過getAttribute()方法獲得使用者名:
<% String username=(String)request.getAttribute("username"); %>
複制
總結
最初一點都不了解這些東西,通過寫下來梳理了自己的思路,是以要多總結,才會變成自己的東西。
釋出者:全棧程式員棧長,轉載請注明出處:https://javaforall.cn/105701.html原文連結:https://javaforall.cn