java中getAttribute和getParameter的区别
getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为Object对象类型
getParameter表示接收参数,参数为页面提交的参数,包括:表单提交的参数、URL重写(就是xxx?id=1中的id)传的参数等,因此这个并没有设置参数的方法(没有setParameter),而且接收参数返回的不是Object,而是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.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据,, request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段,这个的确是正解.
getAttribute是返回对象,getParameter返回字符串
request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。
分享到:
相关推荐
### getAttribute与getParameter的区别 在Java Web开发中,`...通过以上分析可以看出,`getAttribute` 和 `getParameter` 在Java Web开发中扮演着不同的角色,理解它们的区别对于编写高效、健壮的应用程序至关重要。
### getAttribute 和 getParameter 区别详解 #### 一、概述 在Web开发中,`getAttribute` 和 `getParameter` 是两个非常重要的方法,主要用于获取不同的数据类型和来源。这两个方法虽然相似,但在实际应用场景中...
其中,`getAttribute()` 和 `getParameter()` 是两个非常重要的方法,它们分别用于处理不同的数据类型和场景。本文将详细探讨这两个方法之间的区别,并结合实例进行讲解。 #### 二、`getParameter()` 方法详解 `...
通过上述分析,我们可以清楚地看到`request.getParameter()`与`request.getAttribute()`在功能、用途及使用场景上的区别,这将有助于开发者在实际项目中更加合理地选择和应用这些方法,提高代码的效率和可维护性。
总的来说,`getAttribute()`和`getParameter()`都是处理客户端请求数据的重要工具,但它们的使用场合和数据类型处理上有所区别。理解这些差异对于编写高效且健壮的Web应用程序至关重要。在开发过程中,根据具体需求...
### `request.getParameter()` 和 `session.getAttribute()` 的区别 #### 1. **作用范围** - **`request.getParameter()`**:此方法用于从当前 HTTP 请求中获取参数的值。这些参数通常来源于 HTML 表单或 URL 查询...
request.getParameter() 和 request.getAttribute() 是两个最常用的方法来获取客户端的请求信息,但是它们的用法和作用域却有很大的区别。 request.getParameter() 方法是用来获取客户端通过 HTTP 协议传递的参数,...
根据上述文件信息,造成`request.getParameter()`取值为null的原因是页面元素的id属性和name属性设置不一致。 在HTML中,一个表单元素可以同时拥有id和name属性。id属性用于在同一个页面内唯一标识该元素,便于...
通过`setAttribute`和`getAttribute`方法可以在`ServletContext`中存储和检索数据,实现数据共享的功能。 #### 总结 以上介绍了JSP中的四种会话跟踪方式及其基本使用方法,同时还提到了内部跳转与外部跳转的区别...
在本篇文章中,我们将深入探讨`request.getParameter()`和`request.setAttribute()`以及`request.getAttribute()`的区别,并提供相关示例来帮助理解它们的用法。 **一、request.getParameter() 和 request....
**getAttribute 和 getParameter** 都是Servlet API中的方法,用于从请求中获取数据。getAttribute() 用于获取存储在HttpServletRequest对象中的属性值,这些属性可以在请求处理过程中被多次使用,跨多个方法传递。...
这里的`xxx`和`yyy`就是GET请求的参数名,`王大炮`和`123456`是对应的参数值。在Servlet端,我们可以使用`HttpServletRequest`的`getParameter()`方法来获取这些参数: ```java protected void doGet...
- 与`setAttribute()`和`getAttribute()`不同的是,`getParameter()`只能获取当前请求中的URL参数,不能用于存储和传递其他类型的对象。 #### 四、总结 Attribute在Java Web开发中扮演着极其重要的角色,它不仅...
- **getParameter()与getAttribute()的区别**:`getParameter()`用于获取请求参数,适用于表单数据的获取,而`getAttribute()`则是用来在请求范围内共享对象或数据。 这个实验旨在通过实践操作,让学生深入理解和...
- **代码简洁性**: OGNL表达式的使用避免了大量的`request.getAttribute()`和`myBean.getMyProperty()`之类的语句,使得代码更加简洁易懂。 - **支持运算符**: OGNL支持各种运算符,如加减乘除等,使得表达式具有更...
JSP内置对象session和application的应用 JSP(Java Server Pages)是一种服务器端脚本语言,用于生成动态网页。JSP内置对象是JSP提供的一些预定义对象,通过这些对象,可以访问和操作服务器端的资源。其中,session...
利用它的两个方法setAttribute()和getAttribute(),可以实现参数的传递。 例如,下面的实例实现了把第一个JSP页面的参数传递给第三个页面的功能: 1.jsp whats your name 2.jsp String name=...
包括字符串对象的创建、StringBuffer与StringBuilder的区别、Error与Exception的差异、Java序列化、JVM加载Class文件的机制、ServletAPI中的forward()与redirect()的区别,以及HttpServletRequest中getAttribute()与...
String action request getParameter "action" ; Teacher t new Teacher ; t setUsername request getParameter "username" ; if "register" equals action { t set...
//得到书号和书本对象 int bookid =Integer.parseInt(request.getParameter("id")); Map, Book> books = (Map, Book>)request.getSession().getServletContext().getAttribute("books"); Book book = books....