日期:2014-05-18  浏览次数:20631 次

getParameter和getAttribute的区别
哪位高手指教一下,小弟我是初学者,很多理念还不很清楚。

------解决方案--------------------
1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法

(2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,

(3)当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。
------解决方案--------------------
一般通过表单和链接传递的参数使用getParameter
通过request.setAttribute( "name ", "jerry ")的方式赋值的使用request.getAttribute( "name ")
------解决方案--------------------
这个问题主要是request和session的差别,request范围较小一些,只是一个请求,简单说就是你在页面上的一个操作, request.getParameter()就是从上一个页面中的url、form中获取参数,但如果一个request涉及多个类,后面还要取参数,可以用request.setAttribute()和request.getAttribute(),但是当结果输出之后,request就结束了。
而session可以跨越很多页面,可以理解是客户端同一个IE窗口发出的多个请求。这之间都可以传递参数,比如很多网站的用户登录都用到了。
------解决方案--------------------
一般可以用getParameter得到页面参数。。。字符串。。。
getAttribute()可以得到对象。。。
------解决方案--------------------
getParameter可以得到页面传来的参数如?id=123之类的。
getAttribute()常用于servlet页面传递参数给jsp
------解决方案--------------------
同意 iwillrockyou的答案
------解决方案--------------------
getParameter获取url参数,getAttribute通常通过servlet获取页面上设置的参数
------解决方案--------------------
个人见解:
当用户把值作为链接参数传递给下个页面或serve时,用getParameter()获取.如aa.jsp?id=1;还有表单的提交.
当用户把值放在了request中的一个属性时(request.setAttribute( "aa ", "tt "), "aa "这个属性名可以任意取的),用getAttribute(属性名)获取.
------解决方案--------------------
同意Amo_Feng()的说法。
request范围较小一些,只是一个请求,简单说就是你在页面上的一个操作, request.getParameter()就是从上一个页面中的url、form中获取参数。但如果一个request涉及多个类,后面还要取参数,可以用request.setAttribute()和request.getAttribute(),但是当结果输出之后,request就结束了。
而session可以跨越很多页面。范围大于request。

------解决方案--------------------
同意Amo_Feng()的说法。