当两个Web组件之间为转发关系时,转发源会将要共享 request范围内的数据先用setAttribute将数据放入到HttpServletRequest对象中,然后转发目标通过 getAttribute方法来取得要共享的数据。而MVC中用的就是Web组件之间的转发啊!

下面整理一下getParameter和getAttribute的区别和各自的使用范围。

(1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法

(2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,例如假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码:

<a href="authenticate.jsp?username=wolf">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容器内部流转,仅仅是请求处理阶段。

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

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

转载于:https://blog.51cto.com/12575213/1287889

getAttribute与getParameter区别相关推荐

  1. 【图示,简单明了】HttpServlet中getAttribute和getParameter的区别——【javaweb系列学习笔记】

    在写教材项目时,发现好多好多函数我都不认得, 既然不认得,机械的打上去又有什么用呢? getAttribute和getParameter就是一例, 在网上陆陆续续的看了很多讲解, 以下是我的个人总结: ...

  2. request.getParameter和request.getAttribute之间的区别

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

  3. HttpServletRequest中getAttribute()和getParameter()的区别

    一.数据据来源不同 HttpServletRequest类有setAttribute()方法,而 没有setParameter()方法 get/setParameter是在对你的页面中的表单元素进行操 ...

  4. getAttribute和getParameter的区别

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

  5. getparameter java_java中getAttribute和getParameter的区别

    getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为Object对象类型 getParame ...

  6. getparameter java_java中getAttribute与getParameter方法的区别

    知识点1:getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为object对象类型 例:re ...

  7. getAttribute与getParameter的区别

    1.getParameter得到的是字符串,其取值源于jsp页面,从jsp页面中接受一个存在的参数,多用于servlet中,用于判断业务的类型和跳转页面.如: request.getParameter ...

  8. request.getAttribute()和request.getParameter()区别

    request.getParameter()是用来接受来自get方法或post方法的参数,只能接受java.lang.String <form method=post> <form  ...

  9. getParameter与getAttribute两者的区别

    request.setAttribute("xiaoxi", "欢迎用户"+name);//向request域中放置信息 ( 键值对的形式) 名字为xiaoxi ...

最新文章

  1. OpenCV图像旋转的原理与技巧
  2. 前端学习(2160):vuecli项目初始化过程
  3. 数据库支持的数据类型
  4. rabbitmq的通配符模式(Topic Exchange)的*和#区别
  5. 《Python自然语言处理》第二章 习题解答 练习6
  6. 反应特别慢_孩子反应总是很迟钝?家长多注意一点孩子的兴趣培养
  7. Unix网络编程---第一次作业
  8. jvm 的内存分配方式
  9. 190129每日一句
  10. HTML+CSS+JavaScript实现打字小游戏
  11. 笔趣阁 单篇小说采集
  12. 网站扫码登录时怎么一回事?
  13. 5304—K3 Cloud 自定义webAPI
  14. 构建人人网社会化推荐引擎
  15. 联想服务器光驱安装win7系统,联想光盘安装win7系统教程
  16. 阿里首席架构师讲解“双十一”亿级流量高并发的系统架构搭建方法
  17. 基于网络安全的Docker逃逸
  18. 【记录】win11安装ubuntu子系统教程
  19. Vue3大菠萝pinia笔记
  20. 桂林电子科技大学计算机学院老师,李凤英_桂林电子科技大学研究生导师信息...

热门文章

  1. Maven 之常用命令
  2. TP5 实现基于标签简单的推荐算法
  3. Windows核心编程 第2 5章 未处理异常和C ++异常(上)
  4. 汇编环境搭建(vs2010(2012)+masm32)
  5. hdu4122 制作月饼完成订单的最小花费
  6. Android-去除Button默认边框
  7. 【数字信号处理】相关函数 ( 功率信号 | 功率信号的互相关函数 | 功率信号的自相关函数 )
  8. 【错误记录】Flutter 插件不兼容 ( requires Flutter SDK version >=1.22.0 <2.0.0, url_launcher >=5.7.7 <6.0.0- )
  9. 关闭子页面刷新父页面,不需要弹出确认窗口
  10. 雷林鹏分享:Ruby XML, XSLT 和 XPath 教程