-
JSP中getParameter和getAttribute差别
添加时间:2013-7-2 点击量:(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 返回的是string, 用于读取提交的表单中的值; (页面参数和字符串) 如?id=123之类的。
getattribute
返回的是object,需举办转换,可用setattribute设置成任意器材,哄骗很灵活,可随时用; 常用于servlet
页面传递参数给jsp
getparameter()是获取post/get传达的参数值;
——getattribute()是获取器材容器中的数据值;
——getparameter:用于客户端重定向时,即点击了链接或提交按扭时传值用,即用于在用表单或url重定向传值时接收数据用。
——getattribute:用于就事器端重定向时,即在sevlet中哄骗了forward函数,或struts中哄骗了
mapping.findforward。getattribute只能收到法度用setattribute传过来的值。
——getparameter()是获取post/get传达的参数值;
——getattribute()是获取session的值;
此外,可以用setattribute,getattribute发送接收器材.而getparameter显然只能传字符串。
setattribute
是应用就事器把这个器材放在该页面所对应的一块内存中去,当你的页面就事矜恤定向到另一个页面时,应用就事器会把这块内存拷贝另一个页面所对应
的内存中如许getattribute就能取得你所设下的值,固然这种方法可以传器材。session也一样,只是器材在内存中的生命周期不一样罢了。
getparameter只是应用就事器在解析你奉上来的request页面的文本时,取得你设在表单或url重定向时的值。
小我见地:当用户把值作为链接参数传递给下个页面或serve时,其实啊也就是网页间传递数据,用
request.getparameter():提取发送过来的参数如:本网页
http://community.csdn.net/expe/topic/4633/4633804.xml?temp=.3488123
request.getparameter(temp)==.3488123当用户把值放在了request中的一个属性时(request.setAttribute(aa,tt),aa这个属性名可以随便率性取的),用
getAttribute(属性名)获取.request 局限较小一些,只是一个恳求,简单说就是你在页面上的一个操纵,
request.getParameter()就是从上一个页面中的url、form中获取参数。但若是一个request涉及多个类,
后面还要参数,可以用request.setAttribute()和request.getAttribute(),然则当成果输出之后,request就停止了。request.getparameter : 是用来经受来自get方法或post方法的参数
<form method=post>
<form
method=get>
<a
href=1.jsp?id=1>ok</a>
只能经受java.lang.string
也便是说string hotel_id
=
request.getparameter(hotel_id);
request.getattribute
是用来经受来自servlet的变量或action(实在action便是特此外 servlet)
在action中,request.setattribute(ret,ret);
只能经受java.lang.object
也便是说list ret
=
(list)request.getattribute(ret);
如果你只用jsp,根蒂根基用不到request.getattribute()request.getParameter(),request.setAttribute()差别如下:我所有的自负皆来自我的自卑,所有的英雄气概都来自于我的软弱。嘴里振振有词是因为心里满是怀疑,深情是因为痛恨自己无情。这世界没有一件事情是虚空而生的,站在光里,背后就会有阴影,这深夜里一片寂静,是因为你还没有听见声音。—— 马良《坦白书》(1)request.getParameter()取得是经由过程容器的实现来取得经由过程类似post,get等体式格式传入的数据,request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是恳求处理惩罚阶段。(2)request.getParameter()办法传递的数据,会从Web客户端传到Web办事器端,代表HTTP恳求数据。request.getParameter()办法返回String类型的数据。request.setAttribute()和getAttribute()办法传递的数据只会存在于Web容器内部还有一点就是,HttpServletRequest类有setAttribute()办法,而没有setParameter()办法。拿一个例子来说一下吧,假如两个WEB页面间为链接关系时,就是说要从1.jsp链接到2.jsp时,被链接的是2.jsp可以经由过程getParameter()办法来获得恳求参数.假如1.jsp里有<form name=form1 method=post action=2.jsp>请输入用户姓名:<input type=text name=username><input type=submit name=Submit value=提交></form>的话在2.jsp中经由过程request.getParameter(username)办法来获得恳求参数username:<% String username=request.getParameter(username); %>然则若是两个WEB间为转发关系时,转发目标WEB可以用getAttribute()办法来和转来源WEB共享request局限内的数据,也还是说一个例子吧。有1.jsp和2.jsp1.jsp向2.jsp传递当前的用户名字,如何传递这一数据呢?先在1.jsp中调用如下setAttribute()办法:<%String username=request.getParameter(username);request.setAttribute(username,username);%><jsp:forward page=2.jsp />在2.jsp中经由过程getAttribute()办法获得用户名字:<% String username=(String)request.getAttribute(username); %>