Parameter&Attribute的区别

本质的区别

  • 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&参数名=参数值)的方法。
1
2
3
4
5
<!–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进行进行操作。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇