`
茴香豆
  • 浏览: 132227 次
  • 性别: Icon_minigender_2
  • 来自: 桂林
社区版块
存档分类
最新评论

getAttribute和getParameter的区别

阅读更多

作为web的初学者,一直被getAttribute和getParameter这两个方法给困扰着,今天在网上搜了下,很受用,有那么点感觉了,现在来理下思路。

第一,它们取到的值不同。getAttribute取到的是对象(object),而getParameter取到的是String。

第二,数据传递路劲不同。request.getParameter方法传递的数据是从web客户端传到web服务器,代表http的请求数据,用于表单或url重定向时使用。

而request.getAttribute方法传递的数据只存在于web容器内部,在具有转发关系的web组件之间共享(servlet和JSP),即在request范围内存在对象。

第三,在jsp中,setAttribute是把这个对象放到该页面所对应的一块内存中,当页面服务器转发到另一个页面时,应用服务器会把这块内存拷贝到另一块页面内存中,(这是参考http://wenku.baidu.com/view/99e0cdaedd3383c4bb4cd287.html讲的,我没测试过,但是我在servlet测试过用重定向时,在aServlet中用request.setAttribute(),在重定向到b时,用request.getAttribute取不到值,这个与第二点相符(我在测试可能用到mvc模式,在action里用request.getAttribute()接收,这相当于request被重新生成了一次,所以用request就取不到值))。

那么,既然对象是存在内存中的,用session来setAttribute就能在重定向的servlet和jsp传对象了,因为session的生命周期较长。

 

好了,今天这部分内容就写到这,大家有什么要补充或修改,记得给我留言啊,谢谢!

分享到:
评论
2 楼 ryanemma 2016-12-05  
request.setAttribute()设置的值作用域只存在一次request,重定向相当于新的request,固然取不到值
1 楼 xuyi.netjava 2010-08-09  
引用
在aServlet中用request.setAttribute(),在重定向到b时,用request.getAttribute取不到值

这个好像有点不对,我明天试试。

相关推荐

    getAttribute和getParameter区别

    ### getAttribute与getParameter的区别 在Java Web开发中,`...通过以上分析可以看出,`getAttribute` 和 `getParameter` 在Java Web开发中扮演着不同的角色,理解它们的区别对于编写高效、健壮的应用程序至关重要。

    getAttribute和getParameter区别.

    ### getAttribute 和 getParameter 区别详解 #### 一、概述 在Web开发中,`getAttribute` 和 `getParameter` 是两个非常重要的方法,主要用于获取不同的数据类型和来源。这两个方法虽然相似,但在实际应用场景中...

    HTTP:getAttribute和getParameter的区别

    其中,`getAttribute()` 和 `getParameter()` 是两个非常重要的方法,它们分别用于处理不同的数据类型和场景。本文将详细探讨这两个方法之间的区别,并结合实例进行讲解。 #### 二、`getParameter()` 方法详解 `...

    request.getParameter() 和request.getAttribute() 区别

    通过上述分析,我们可以清楚地看到`request.getParameter()`与`request.getAttribute()`在功能、用途及使用场景上的区别,这将有助于开发者在实际项目中更加合理地选择和应用这些方法,提高代码的效率和可维护性。

    基于request.getAttribute与request.getParameter的区别详解

    总的来说,`getAttribute()`和`getParameter()`都是处理客户端请求数据的重要工具,但它们的使用场合和数据类型处理上有所区别。理解这些差异对于编写高效且健壮的Web应用程序至关重要。在开发过程中,根据具体需求...

    session.getAttribute

    ### `request.getParameter()` 和 `session.getAttribute()` 的区别 #### 1. **作用范围** - **`request.getParameter()`**:此方法用于从当前 HTTP 请求中获取参数的值。这些参数通常来源于 HTML 表单或 URL 查询...

    了解JSP中request属性的用法

    request.getParameter() 和 request.getAttribute() 是两个最常用的方法来获取客户端的请求信息,但是它们的用法和作用域却有很大的区别。 request.getParameter() 方法是用来获取客户端通过 HTTP 协议传递的参数,...

    request.getParameter()取值为null的解决方法

    根据上述文件信息,造成`request.getParameter()`取值为null的原因是页面元素的id属性和name属性设置不一致。 在HTML中,一个表单元素可以同时拥有id和name属性。id属性用于在同一个页面内唯一标识该元素,便于...

    jsp基础精华详解

    通过`setAttribute`和`getAttribute`方法可以在`ServletContext`中存储和检索数据,实现数据共享的功能。 #### 总结 以上介绍了JSP中的四种会话跟踪方式及其基本使用方法,同时还提到了内部跳转与外部跳转的区别...

    Jsp的request的用法

    在本篇文章中,我们将深入探讨`request.getParameter()`和`request.setAttribute()`以及`request.getAttribute()`的区别,并提供相关示例来帮助理解它们的用法。 **一、request.getParameter() 和 request....

    SSH原理,strusts,hebernate,Spring等相关知识

    **getAttribute 和 getParameter** 都是Servlet API中的方法,用于从请求中获取数据。getAttribute() 用于获取存储在HttpServletRequest对象中的属性值,这些属性可以在请求处理过程中被多次使用,跨多个方法传递。...

    request请求获取参数的实现方法(post和get两种方式)

    这里的`xxx`和`yyy`就是GET请求的参数名,`王大炮`和`123456`是对应的参数值。在Servlet端,我们可以使用`HttpServletRequest`的`getParameter()`方法来获取这些参数: ```java protected void doGet...

    attribute的作用和具体使用方法

    - 与`setAttribute()`和`getAttribute()`不同的是,`getParameter()`只能获取当前请求中的URL参数,不能用于存储和传递其他类型的对象。 #### 四、总结 Attribute在Java Web开发中扮演着极其重要的角色,它不仅...

    实验2 Form表单和内置对象(一)1

    - **getParameter()与getAttribute()的区别**:`getParameter()`用于获取请求参数,适用于表单数据的获取,而`getAttribute()`则是用来在请求范围内共享对象或数据。 这个实验旨在通过实践操作,让学生深入理解和...

    #和$的区别

    - **代码简洁性**: OGNL表达式的使用避免了大量的`request.getAttribute()`和`myBean.getMyProperty()`之类的语句,使得代码更加简洁易懂。 - **支持运算符**: OGNL支持各种运算符,如加减乘除等,使得表达式具有更...

    JSP内置对象 session application的应用

    JSP内置对象session和application的应用 JSP(Java Server Pages)是一种服务器端脚本语言,用于生成动态网页。JSP内置对象是JSP提供的一些预定义对象,通过这些对象,可以访问和操作服务器端的资源。其中,session...

    JSP几种页面间传递参数实现的方法

    利用它的两个方法setAttribute()和getAttribute(),可以实现参数的传递。 例如,下面的实例实现了把第一个JSP页面的参数传递给第三个页面的功能: 1.jsp whats your name 2.jsp String name=...

    java面试题目.docx

    包括字符串对象的创建、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...

    基于servlet的购物车

    //得到书号和书本对象 int bookid =Integer.parseInt(request.getParameter("id")); Map, Book> books = (Map, Book>)request.getSession().getServletContext().getAttribute("books"); Book book = books....

Global site tag (gtag.js) - Google Analytics