zoukankan      html  css  js  c++  java
  • st.getParameter() 和request.getAttribute() 区别 https://terryjs.iteye.com/blog/1317610

    getParameter 是用来接受用post个get方法传递过来的参数的.
    getAttribute 必须先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里有

    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中通过request.getParameter("username")方法来获得请求参数username:

    Html代码  收藏代码
    1. < % String username=request.getParameter("username"); %>  

     


    但是如果两个WEB间为转发关系时,转发目的WEB可以用getAttribute()方法来和转发源WEB共享request范围内的数据,也还是说一个例子吧。

    有1.jsp和2.jsp

    1.jsp希望向2.jsp传递当前的用户名字,如何传递这一数据呢?先在1.jsp中调用如下setAttribute()方法:

    Html代码  收藏代码
    1. <%  
    2. String username=request.getParameter("username");  
    3. request.setAttribute("username",username);  
    4. %>  
    5.   
    6. <jsp:forward page="2.jsp" />  

     


    在2.jsp中通过getAttribute()方法获得用户名字:

    Html代码  收藏代码
    1. <% String username=(String)request.getAttribute("username"); %>  

     

    (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得到页面参数。。。字符串。。。

    getAttribute()可以得到对象。。。


    getParameter可以得到页面传来的参数如?id=123之类的。

    getAttribute()常用于servlet页面传递参数给jsp

  • 相关阅读:
    trackr: An AngularJS app with a Java 8 backend – Part III
    trackr: An AngularJS app with a Java 8 backend – Part II
    21. Wireless tools (无线工具 5个)
    20. Web proxies (网页代理 4个)
    19. Rootkit detectors (隐形工具包检测器 5个)
    18. Fuzzers (模糊测试器 4个)
    16. Antimalware (反病毒 3个)
    17. Debuggers (调试器 5个)
    15. Password auditing (密码审核 12个)
    14. Encryption tools (加密工具 8个)
  • 原文地址:https://www.cnblogs.com/Jeely/p/10857044.html
Copyright © 2011-2022 走看看