ParameterAttribute的区别
本质的区别
- 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的区别相关推荐
- RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别
1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...
- C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别
最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...
- gcc 和 g++ 的联系和区别,使用 gcc 编译 c++
GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...
- Python2 与 Python3 区别
Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...
- Docker 入门系列(1)- 初识容器,镜像、容器、仓库的区别
Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...
- HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)
TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...
- python二进制打开(rb)和文本格式打开(r)什么区别?
使用 open() 函数以文本格式打开文件和以二进制格式打开文件,唯一的区别是对文件中换行符的处理不同. 在 Windows 系统中,文件中用 "\r\n" 作为行末标识符(即换行 ...
- python中__dict__与dir()区别
前言 Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案. __dict__与dir()的区别: dir()是一个函数,返回的是list: _ ...
- java和C#面向对象的区别
问题:C#中的构造函数和java的构造函数一样吗? 答: .net的项目中,写实体Entity属性时,经常会为每一个属性写一对get和set方法,在用到这个实体或是一个类时,通过new实例化一个对象, ...
最新文章
- 越是富人,越重视子女教育
- qpython3下载-QPython3
- Leetcode 200 岛屿数量 (每日一题 20210720)
- Android程序的基本组件
- python异步io 队列_python 学习笔记九 队列,异步IO
- 极端高温导致澳大利亚断网
- [html] 使用svg画出一个矩形
- Python中出现“TabError: inconsistent use of tabs and spaces in indentation”
- paip. java resin 远程 调试 java resin remote debug
- 火山安卓定义全局变量【博客教学】
- mongoDB备份方案
- extremeComponents资料
- robot framework 添加selenium2library显示红色
- 【数据库技术与应用】Part01——数据库系统概述
- 可行性分析报告模板(免费)
- 信息系统分析与设计 第三章 信息系统建设概论
- 部署免安装版MySQL
- 计算机网络技术双机互联,快速实现双机互联的几种方案
- C语言试题106之有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- python的cfg是什么模块_python操作cfg配置文件方式