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
也是对象