getAttribute()方法與getParameter()方法的區別
getAttribute()
方法
request.getAttribute()
與
request.getParameter()
的區別
?
HttpServletRequest
類既有
getAttribute()
方法,
也由
getParameter()
方法,
這兩個方法有以下區
別:
(
1
)
HttpServletRequest
類有
setAttribute()
方法,而沒有
setParameter()
方法
(
2
)
當兩個
Web
元件之間為連結關係時,
被連結的元件通過
getParameter()
方法來獲得請求
引數,
例如假定
welcome.jsp
和
authenticate.jsp
之間為連結關係,
welcome.jsp
中有以下程式碼:
<a href="authenticate.jsp?username=weiqin">authenticate.jsp </a>
或者:
<form name="form1" method="post" action="authenticate.jsp">
請輸入使用者姓名:
<input type="text" name="username">
<input type="submit" name="Submit" value="
提交
">
</form>
在
authenticate.jsp
中通過
request.getParameter("username")
方法來獲得請求引數
username:
<% String username=request.getParameter("username"); %>
(
3
)當兩個
Web
元件之間為轉發關係時,轉發目標元件通過
getAttribute()
方法來和轉發源
元件共享
request
範圍內的資料。假定
authenticate.jsp
和
hello.jsp
之間為轉發關係。
authenticate.jsp
希
望
向
hello.jsp
傳
遞
當
前
的
用
戶
名
字
,
如
何
傳
遞
這
一
資料
呢
?
先
在
authenticate.jsp
中呼叫
setAttribute()
方法:
<%
String username=request.getParameter("username");
request.setAttribute("username"
,
username);
%>
<jsp:forward page="hello.jsp" />
在
hello.jsp
中通過
getAttribute()
方法獲得使用者名稱字
:
<% String username=(String)request.getAttribute("usern
getAttribute()方法與get
ame"); %>
Hello: <%=username %>
從更深的層次考慮,
request.getParameter()
方法傳遞的資料,
會從
Web
客戶端傳到
Web
服務
器端,代表
HTTP
請求資料。
request.getParameter()
方法返回
String
型別的資料。
request.setAttribute()
和
getAttribute()
方法傳遞的資料只會存在於
Web
容器內部,在具有轉發
關係的
Web
元件之間共享。這兩個方法能夠設定
Object
型別的共享資料。
request.getAttribute()
方法返回
request
範圍內存在的物件,而
request.getParameter()
方法是獲
取
http
提交過來的資料。
一般是
string
型用
request.getParameter
物件的引用用
request.getAttribute
當然啦,
String
也是物件
HttpServletRequest
類既有
getAttribute()
方法,
也由
getParameter()
方法,
這兩個方法有以下區
別:
(
1
)
HttpServletRequest
類有
setAttribute()
方法,而沒有
setParameter()
方法
(
2
)
當兩個
Web
元件之間為連結關係時,
被連結的元件通過
getParameter()
方法來獲得請求
引數,
例如假定
welcome.jsp
和
authenticate.jsp
之間為連結關係,
welcome.jsp
中有以下程式碼:
<a href="authenticate.jsp?username=weiqin">authenticate.jsp </a>
或者:
<form name="form1" method="post" action="authenticate.jsp">
請輸入使用者姓名:
<input type="text" name="username">
<input type="submit" name="Submit" value="
提交
">
</form>
在
authenticate.jsp
中通過
request.getParameter("username")
方法來獲得請求引數
username:
<% String username=request.getParameter("username"); %>
(
3
)當兩個
Web
元件之間為轉發關係時,轉發目標元件通過
getAttribute()
方法來和轉發源
元件共享
request
範圍內的資料。假定
authenticate.jsp
和
hello.jsp
之間為轉發關係。
authenticate.jsp
希
望
向
hello.jsp
傳
遞
當
前
的
用
戶
名
字
,
如
何
傳
遞
這
一
資料
呢
?
先
在
authenticate.jsp
中呼叫
setAttribute()
方法:
<%
String username=request.getParameter("username");
request.setAttribute("username"
,
username);
%>
<jsp:forward page="hello.jsp" />
在
hello.jsp
中通過
getAttribute()
方法獲得使用者名稱字
:
<% String username=(String)request.getAttribute("username"); %>
Hello: <%=username %>
從更深的層次考慮,
request.getParameter()
方法傳遞的資料,
會從
Web
客戶端傳到
Web
服務
器端,代表
HTTP
請求資料。
request.getParameter()
方法返回
String
型別的資料。
request.setAttribute()
和
getAttribute()
方法傳遞的資料只會存在於
Web
容器內部,在具有轉發
關係的
Web
元件之間共享。這兩個方法能夠設定
Object
型別的共享資料。
request.getAttribute()
方法返回
request
範圍內存在的物件,而
request.getParameter()
方法是獲
取
http
提交過來的資料。
一般是
string
型用
request.getParameter
物件的引用用
request.getAttribute
當然啦,
String
也是物件