getAttribute 必须先setAttribute.
(1)Parameter()取得是通过容器的实现来取得通过类似post,get等⽅式传⼊的数据,request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。
(2)Parameter() ⽅法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。Parameter()⽅法返回String类型的数据。
request.setAttribute()和getAttribute()⽅法传递的数据只会存在于Web容器内部
还有⼀点就是,HttpServletRequest 类有 setAttribute() ⽅法,⽽没有setParameter() ⽅法。
拿⼀个例⼦来说⼀下吧,假如两个WEB页⾯间为链接关系时,就是说要从1.jsp链接到2.jsp时,被链接的是2.jsp可以通过getParameter()⽅法来获得请求参数.
假如1.jsp⾥有
Html代码
1. <form name="form1" method="post" action="
2.jsp">
2. 请输⼊⽤户姓名:<input type="text" name="username">
3. <input type="submit" name="Submit" value="提交">
4. </form>
的话在2.jsp中通过Parameter("username")⽅法来获得请求参数username:
Html代码
1. < % String Parameter("username"); %>
但是如果两个WEB间为转发关系时,转发⽬的WEB可以⽤getAttribute()⽅法来和转发源WEB共享request范围内的数据,也还是说⼀个例⼦吧。
有1.jsp和2.jsp
1.jsp希望向
2.jsp传递当前的⽤户名字,如何传递这⼀数据呢?先在1.jsp中调⽤如下setAttribute()⽅法:
Html代码
1. <%
2. String Parameter("username");
3. request.setAttribute("username",username);
4. %>
5.
6. <jsp:forward page="2.jsp" />
在2.jsp中通过getAttribute()⽅法获得⽤户名字:
Html代码
1. <% String username=(Attribute("username"); %>
(1)HttpServletRequest类有setAttribute()⽅法,⽽没有setParameter()⽅法
(2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()⽅法来获得请求参数,
(3)当两个Web组件之间为转发关系时,转发⽬标组件通过getAttribute()⽅法来和转发源组件共享request范围内的数据。
⼀般通过表单和链接传递的参数使⽤getParameter
通过request.setAttribute("name","jerry")的⽅式赋值的使⽤Attribute("name")
这个问题主要是request和session的差别,request范围较⼩⼀些,只是⼀个请求,简单说就是你在页⾯上的⼀个操作,
⽽session可以跨越很多页⾯,可以理解是客户端同⼀个IE窗⼝发出的多个请求。这之间都可以传递参数,⽐如很多⽹站的⽤户登录都⽤到了。
⼀般可以⽤getParameter得到页⾯参数。。。字符串。。。
getAttribute()可以得到对象。。。
getParameter可以得到页⾯传来的参数如?id=123之类的。
getAttribute()常⽤于servlet页⾯传递参数给jsp
getattribute方法返回类型本⽂转载⾃: