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>
html 代码
或者:
- <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"); %>
html 代码
在authenticate.jsp中通过request.getParameter("username")方法来获得请求参数username:<!---->
(3)当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。假定authenticate.jsp和hello.jsp之间为转发关系。authenticate.jsp希望向hello.jsp传递当前的用户名字,如何传递这一数据呢?先在authenticate.jsp中调用setAttribute()方法:
<!----><jsp:forward page="hello.jsp"></jsp:forward>在hello.jsp中通过getAttribute()方法获得用户名字:<!---->Hello: <!---->
(4)从更深的层次考虑,request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。
request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。这两个方法能够设置Object类型的共享数据。
getParameter得到的都是String类型的。或者是http://a.jsp id=123中的123,或者是某个表单提交过去的数据。
getAttribute则可以是对象。
getParameter()是获取POST/GET传递的参数值;
getAttribute()是获取对象容器中的数据值;
getParameter:用于客户端重定向时,即点击了链接或提交按扭时传值用,即用于在用表单或url重定向传值时接收数据用。
getAttribute:用于服务器端重定向时,即在sevlet中使用了forward函数,或struts中使用了mapping.findForward。getAttribute只能收到程序用setAttribute传过来的值。
另外,可以用setAttribute,getAttribute发送接收对象.而getParameter显然只能传字符串。
setAttribute是应用服务器把这个对象放在该页面所对应的一块内存中去,当你的页面服务器重定向到另一个页面时,应用服务器会把这块内存拷贝另一个页面所对应的内存中。这样getAttribute就能取得你所设下的值,当然这种方法可以传对象。session也一样,只是对象在内存中的生命周期不一样而已。
getParameter只是应用服务器在分析你送上来的request页面的文本时,取得你设在表单或url重定向时的值。
分享到:
相关推荐
设置标题的文字属性
Property和Attribute的区别
Attribute标记属性_资料收集 Attribute 标记属性 影响编译 .net c#
BLE通用属性(ATTRIBUTE)组成的最小单元,描述了BLE的相关属性
Attribute教程属性.doc
在C#中有两个属性,分别为Property和Attribute,两个的中文意思都有特性、属性之间,但是用法上却不一样,为了区别,本文暂把Property称为特性,把Attribute称为属性。 Attribute才是本文的主角,把它称为属性我觉得...
程序功能: 改变所有已知的文件的属性。 为属性的批量修改,日期和时间。 增加或减少的日期和时间。 局部修改日期/时间。 处理大量的文件和文件夹。 处理子文件夹。 可重复使用的模板系统。
Attribute是属性的意思,文章仅对部分兼容IE和FF的Attribute相关的介绍。 attributes:获取一个属性作为对象 getAttribute:获取某一个属性的值 setAttribute:建立一个属性,并同时给属性捆绑一个值 ...
Attribute在NET中的应用 讲解在NET中如何自定义自己的特性(Attribute)如何使用
c#中的特性(attribute)+反射的一个例子
包含2篇attribute高级应用文章,以及相应的代码。 代码关键处,都有详细注释。 看过后,你会对attribute,context有更深刻的认识
Attribute是属性的意思,文章仅对部分兼容IE和FF的Attribute相关的介绍。具体内容详情大家参考下本
基于属性的访问控制模型及其展望Attribute-Based Access Control Models and Beyond 云计算
demo演示了gpio_init(void) 和 key_init(void)如何设置__attribute__ ((constructor)) 属性,同时演示了添加key.c文件的不需要修改main.c的方法,此方法能减少对main.c的修改,也体现了软件设计--高内聚低耦合的思想...
AttributeRouting, 在 ASP.NET MVC和 Web API 中,使用操作的属性定义路由 AttributeRouting正在启动阅读了文档。如果你在使用这个库时遇到任何问题,请将它们记录在问题跟踪程序中。 注意,自微软将Attribute...
属性(Attribute)是C#程序设计中非常重要的一个技术,应用范围广泛,用法灵活多变。本文就以实例形式分析了C#中属性的应用。具体入戏: 一、运用范围 程序集,模块,类型(类,结构,枚举,接口,委托),字段,方法...
详细介绍了Attribute属性在.NET中的应用 适合初级人员,
3、例子中实现了一个自定义的Attribute:DisplayNameAttribute和一个自定一个TypeConverter:EnumConverter,以支持显示的值与实际选中的值可以不同并一一对应。 注意,各个属性均是自己定义的一个枚举类型...
1. 定义 Property:属性,所有的HTML元素都由HTMLElement类型表示,HTMLElement类型直接继承自Element并添加了一些属性,添加的这些...Attribute:特性,区别于property,attribute只能是字符串,大小写不敏感,出现