本文介绍JSP中request属性的用法,以及request.getParameter() 和request.getAttribute() 区别。
一、request.getParameter() 和request.getAttribute() 差异
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里有
- <formname="form1"method="post"action="2.jsp">
- 请输入用户姓名:<inputtype="text"name="username">
- <inputtype="submit"name="Submit"value="提交">
- form>
的话在2.JSP中经过request.getParameter("username")办法来取得恳求参数username:
< % String username=request.getParameter("username"); %>可是假如两个WEB间为转发联系时,转发意图WEB能够用getAttribute()办法来和转发源WEB同享request规模内的数据,也仍是说一个比如吧。有1.JSP和2.JSP
1.JSP希望向2.JSP传递当时的用户姓名,怎么传递这一数据呢?先在1.JSP中调用如下setAttribute()办法:
- <%
- Stringusername=request.getParameter("username");
- request.setAttribute("username",username);
- %>
- <jsp:forwardpage="2.jsp"/>
- 在2.jsp中经过getAttribute()办法取得用户姓名:
- <%Stringusername=(String)request.getAttribute("username");%>
二、request.getAttribute()与request.setAttribute()
request.getAttribute("nameOfObj")可得到JSP页面一表单中控件的Value。其实表单控件中的Object的 name与value是存放在一个哈希表中的,所以在这里给出Object的name会到哈希表中找出对应它的value。
而不同页面间传值运用request.setAttribute(position, nameOfObj)时,只会从a.JSP到b.JSP一次传递,之后这个request就会失掉它的效果规模,再传就要再设一个 request.setAttribute()。而运用session.setAttribute()会在一个过程中一直保有这个值。
P.S.:JavaScript与JSP中不能彼此传值,由于JavaScript运行在客户端,而JSP运行在服务器端。若想使它们之间能够彼此传递参数,能够在JSP中设置一个hidden控件,用它的value结合上面所说的用法来传递所需的数值。
【修改引荐】
- 简略介绍JSP数据库高档操作
- 完成JSP数据和JavaScript数据交互运用
- JSP和Servlet中的几个编码的效果及原理
- 怎么处理JSP页面显现乱码问题
- 在JSP顶用JDBC衔接各种数据库
知优网 » 了解JSP中request特点的用法(jsp中request的作用)