天天看點

java中的getAttribute和getParameter

大家好,又見面了,我是你們的朋友全棧君。

在學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