本质的区别

  • Parameter是参数,本质上是字符串String
    对其操作的方法只有getParameter(“参数名”)
  • Attribute是属性,本质上是对象Object
    对其操作的方法有setAttribute(“属性名”,属性)和getAttribute(“属性名”)

对象的区别

  • 对Parameter进行操作的对象只能是request对象,Parameter由前端form表单提交或者url传值的方法放入request。
  • 对Attribute进行操作的对象可以是request对象、session对象还可以是servletContext对象,其区别在于各自的作用域不同,相互之间互不影响,在指代不明的情况下会有相互替代的可能,如使用el表达式时。

方法的区别

  • Parameter只有getParameter(“参数名”)方法,而没有setParameter()方法,要设置Parameter参数的值只能是由前端form表单提交或者url传值(?id=admin&pwd=000&参数名=参数值)的方法。
<!--form表单传值-->
<form><input type="text" name="id" value="admin" /><input type="text" name="参数名" value="参数值为输入框中实际输入的内容" />
</form>

getParameter(“参数名”)方法的返回值是String类型,若不存该参数名则返回null
url传值时用后缀在url之后,以键值对的方式传值,多个键值对之间用&连接

  • Attribute同时有getAttribute(“属性名”)方法和setAttribute(“属性名”,属性)的方法,其可以被request对象、session对象和servletContext对象调用,当对象调用getAttribute()方法时,只能获取相同对象使用setAttribute()方法设置的属性对象。
    其作用域有包含关系servletContext(session(request)),当在前端使用el表达式获取属性时,将由作用域从小到大找寻对应的属性,也就是前端如果想要获取session设置的属性obj1,但是恰巧request也设置了名为obj1的属性,那么将获取到request设置的obj1属性。
    getAttribute(“属性名”)方法的返回值是object类型,若不存在该属性同样返回null

作用域的区别

  • Parameter只在request的作用域中有效,也就是一旦发生新的请求,原来的请求中的参数也都随着原request的失效而失效。
  • Attribute有三个不同的作用域,其也会在其各自作用域失效的同时而失效,但无疑多了更多选择。
    比如session1下的request1中获取到了一个属性obj1,并将其存入了session1中,于是即使request1被销毁而失效,session1下的其他request比如也可以获取session1中的属性obj1进行进行操作。

ParameterAttribute的区别相关推荐

  1. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别

    1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...

  2. C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别

    最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...

  3. gcc 和 g++ 的联系和区别,使用 gcc 编译 c++

    GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...

  4. Python2 与 Python3 区别

    Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...

  5. Docker 入门系列(1)- 初识容器,镜像、容器、仓库的区别

    Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...

  6. HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)

    TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...

  7. python二进制打开(rb)和文本格式打开(r)什么区别?

    使用 open() 函数以文本格式打开文件和以二进制格式打开文件,唯一的区别是对文件中换行符的处理不同. 在 Windows 系统中,文件中用 "\r\n" 作为行末标识符(即换行 ...

  8. python中__dict__与dir()区别

    前言 Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案. __dict__与dir()的区别: dir()是一个函数,返回的是list: _ ...

  9. java和C#面向对象的区别

    问题:C#中的构造函数和java的构造函数一样吗? 答: .net的项目中,写实体Entity属性时,经常会为每一个属性写一对get和set方法,在用到这个实体或是一个类时,通过new实例化一个对象, ...

最新文章

  1. 越是富人,越重视子女教育
  2. qpython3下载-QPython3
  3. Leetcode 200 岛屿数量 (每日一题 20210720)
  4. Android程序的基本组件
  5. python异步io 队列_python 学习笔记九 队列,异步IO
  6. 极端高温导致澳大利亚断网
  7. [html] 使用svg画出一个矩形
  8. Python中出现“TabError: inconsistent use of tabs and spaces in indentation”
  9. paip. java resin 远程 调试 java resin remote debug
  10. 火山安卓定义全局变量【博客教学】
  11. mongoDB备份方案
  12. extremeComponents资料
  13. robot framework 添加selenium2library显示红色
  14. 【数据库技术与应用】Part01——数据库系统概述
  15. 可行性分析报告模板(免费)
  16. 信息系统分析与设计 第三章 信息系统建设概论
  17. 部署免安装版MySQL
  18. 计算机网络技术双机互联,快速实现双机互联的几种方案
  19. C语言试题106之有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
  20. python的cfg是什么模块_python操作cfg配置文件方式

热门文章

  1. debian安装tools
  2. Cobertura计算覆盖率
  3. 基于Excel的VDS记录数据文件查看及转换工具(转MDA格式)
  4. Linux各种安装软件包的方式
  5. 企业网络如何实现升级
  6. 1392:繁忙的都市(city)
  7. 数字图像处理——第二章(数字图像基础)
  8. Android各种轮子
  9. AI开发之——Leonardo—Finetuned Models及利用模型制图(5)
  10. 数据高位和低位的分离