• request属性 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里有

    <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.jsp

    1.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"); %>

    二、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结合上面所说的用法来传递所需的数值。

  • 相关阅读:
    GhostBSD 3.0RC3,基于GNOME的FreeBSD
    Nagios 3.4.3 发布,企业级监控系统
    Jolokia 1.0.6 发布, JMX远程访问方法
    微软希望开发人员不要使 WebKit 成为新版 IE6
    Kwort Linux 3.5 正式版发布
    EJDB 1.0.24 发布,嵌入式 JSON 数据库引擎
    Pale Moon 15.3 Firefox“苍月”优化版发布
    Galera Load Balancer 0.8.1 发布
    SmartSVN V7.5 正式发布
    PostgresQL建立索引如何避免写数据锁定
  • 原文地址:https://www.cnblogs.com/lxl57610/p/8399460.html
Copyright © 2020-2023  润新知