HttpServletRequest类的getAttribute()方法与getParameter()方法的区别
2015-06-25 18:49
585 查看
(1)request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。返回类型为Object类型
(2)request.getParameter() 方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。
通过两个实例来说明:
(1)当两个Web组件之间为链接关系时,即HTTP请求数据,被链接的组件通过getParameter()方法来获得请求参数,例如:
假定a.jsp和b.jsp之间为链接关系,a.jsp中有以下代码:
<a href="a.jsp?username=admin" /a>
或者:
<form method="post" action="b.jsp">
<input type="text" name="username">
<input type="submit" name="Submit" value="提交">
</form>
在b.jsp中通过request.getParameter("username")方法来获得请求参数username的值:<% String username=request.getParameter("username"); %>
(2)当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。例如:
假定b.jsp和c.jsp之间为转发关系。b.jsp向c.jsp传递当前的用户名字,代码如下:
b.jsp中调用setAttribute()方法:
<%
String username=request.getParameter("username");
request.setAttribute("username",username);
%>
//转发请求到c.jsp
<jsp:forward page="c.jsp" />
c.jsp中通过getAttribute()方法获得用户名字:
<% String username=(String)request.getAttribute("username"); %>
<%=username %>
PS:上面的转发请求,属于一次请求,两个页面之间request数据共享,所以此时c.jsp通过request.getParameter("username");同样可以获取HTTP请求数据;
但是当使用<jsp:userBean id="user" scope="request"/>标签时,要获取request中的属性值必须使用request.getAttribute("user")获取
(2)request.getParameter() 方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。
通过两个实例来说明:
(1)当两个Web组件之间为链接关系时,即HTTP请求数据,被链接的组件通过getParameter()方法来获得请求参数,例如:
假定a.jsp和b.jsp之间为链接关系,a.jsp中有以下代码:
<a href="a.jsp?username=admin" /a>
或者:
<form method="post" action="b.jsp">
<input type="text" name="username">
<input type="submit" name="Submit" value="提交">
</form>
在b.jsp中通过request.getParameter("username")方法来获得请求参数username的值:<% String username=request.getParameter("username"); %>
(2)当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。例如:
假定b.jsp和c.jsp之间为转发关系。b.jsp向c.jsp传递当前的用户名字,代码如下:
b.jsp中调用setAttribute()方法:
<%
String username=request.getParameter("username");
request.setAttribute("username",username);
%>
//转发请求到c.jsp
<jsp:forward page="c.jsp" />
c.jsp中通过getAttribute()方法获得用户名字:
<% String username=(String)request.getAttribute("username"); %>
<%=username %>
PS:上面的转发请求,属于一次请求,两个页面之间request数据共享,所以此时c.jsp通过request.getParameter("username");同样可以获取HTTP请求数据;
但是当使用<jsp:userBean id="user" scope="request"/>标签时,要获取request中的属性值必须使用request.getAttribute("user")获取
相关文章推荐
- 网络课程视频网站
- 关于 P2P facebookc 等设计网络技术架构概念汇总
- 网络爬虫1-创建第一个简单的脚本
- as3.0加载本地或网络上的图片
- java用httpclient 4.3 实现将base64串进行文件上传
- HTTP长连接
- TCP慢启动、拥塞避免、快速重传、快速回复
- android使用ImageView加载本地SdCard图片和加载网络图片
- 计算机网络总结(二)
- Http请求Demo
- 网络知识点总结(一)
- VMware下ubuntu系统一直莫名其妙地连接无线网络导致Hadoop集群无法正常启动的解决方法
- AFHTTPRequestOperationManager当一个网络请求加入菊花
- iPhone作为热点为PC提供网络
- 下载网络附件
- 怎样在Linux中查看apache是用那个httpd.conf
- http://yjck.iteye.com/blog/1609232
- httpd配置文件详解(下)
- Linux上基于网络自动化安装系统(CentOS6.5+DHCP+TFTP+PXE)
- GRE写作论证论据素材大全—网络的作用及机遇