zoukankan      html  css  js  c++  java
  • setAttribute和setParameter方法的区别

      getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为Object对象类型 
      getParameter表示接收参数,参数为页面提交的参数,包括:表单提交的参数、URL重写(就是xxx?id=1中的id)传的参数等,因此这个并没有设置参数的方法(没有setParameter),而且接收参数返回的不是Object,而是String类型

      HttpServletRequest类既有getAttribute()方法,也有getParameter()方法,这两个方法有以下区别:

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

      例如:假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码:

    <a  href="authenticate.jsp?username=weiqin">authenticate.jsp  </a>

      或者:

    <form  name="form1"  method="post"  action="authenticate.jsp">
       请输入用户姓名:<input  type="text"  name="username">
       <input  type="submit"  name="Submit"  value="提交">
    </form>

      在authenticate.jsp中通过request.getParameter("username")方法来获得请求参数username:

    <%  String  username=request.getParameter("username");  %>

      (3)当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据

      假定:  authenticate.jsp和hello.jsp之间为转发关系。authenticate.jsp希望向hello.jsp传递当前的用户名字,  如何传递这一数据呢?先在authenticate.jsp中调用setAttribute()方法:

    <%
    String  username=request.getParameter("username");
    request.setAttribute("username",username);
    %>
    
    <jsp:forward  page="hello.jsp"  />
    
    //在hello.jsp中通过getAttribute()方法获得用户名字:
    
    <%  String  username=(String)request.getAttribute("username");  %>
    Hello:  <%=username  %>

      从更深的层次考虑,request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。

      request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。这两个方法能够设置Object类型的共享数据。

      request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据,  request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段,这个的确是正解。

    总结:

    1、getAttribute是返回对象,getParameter返回字符串

    2、request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。

  • 相关阅读:
    Calling a parent window function from an iframe
    JSON with Java
    Posting array of JSON objects to MVC3 action method via jQuery ajax
    What's the difference between jquery.js and jquery.min.js?
    jquery loop on Json data using $.each
    jquery ui tabs详解(中文)
    DataTables warning requested unknown parameter
    Datatables 1.10.x在命名上与1.9.x
    jQuery 1.x and 2.x , which is better?
    DataTabless Add rows
  • 原文地址:https://www.cnblogs.com/goloving/p/7640951.html
Copyright © 2011-2022 走看看