request.getParameter()和request.setAttribute()都可以在页面上接收其他页面上的不同,那么两者之间有什么不同吗?下面将通过例子为大家介绍:
先看两段代码:
1、 request.getParameter()使用示例
本示例存在两个页面,1.jsp,2.jsp。
1.jsp源码:本页面通过form表单提交,与2.jsp页面为链接关系
<body>
<form action="2.jsp" method="post">
用户名:<inputtype="text" name="user_name" >
<input type="submit"name="submit" value="提交" >
</form>
</body>
2.jsp源码:本页面通过request.getParameter获取1.jsp页面传过来的值,返回类型是String
<body>
用户名:<%=request.getParameter("user_name") %>
</body>
2、 request.setAttribute()使用示例
本页面存在两个页面,3.jsp,4.jsp
3.jsp源码:通过request.setAttribute设置要传的值,与4.jsp是转发关系。
<body>
<%
String username="aaaaa";
request.setAttribute("username",username);
%>
<!-- 数据的转发 -->
<jsp:forward page="4.jsp" />
</body>
4.jsp源码:通过request.getAttribute获取设置好的参数,返回类型为object
<body>
<%
Stringstr=(String)request.getAttribute("username");
out.print(str);
%>
</body>
那它们究竟有什么不同呢?
方法 | 返回 对象 | 数据来源方式 | 页面 关系 | 数据 传送方式 | 备注 |
request.getParameter | String | 通过url,form传送 | 链接 | 在Web客户端 传到Web服务器端 | 最大的区别是:数据传输是否通过服务器。 |
getAttribute | Object | request.setAttribute设置 | 转发 | web容器内部流转 |