what?三者的getAttribute方法如何区分?
细听我娓娓道来
- 本质区别在于作用范围不同:
request.getAttribute
是当前请求,它通过key(也就是你设置的参数)来获得参数里的内容seeeion.getAttribute
它是一个“会议请求”,它存在于整个会话过程,直到你退出网站或者session超时;它通过你指定的名字(也就是你设置的==String name ==)来获得参数里的内容application.getAttribute
它类似一个“服务器请求”,只要没有关闭服务器,application 对象将一直存在,所有用户可以共享application对象;它与session对象的区别是:所有用户的application对象都是相同的一个对象,而不同用户的seesion是完全不同的对象。
- 相同点是:
- 它们的
getAttribute
方法都是通过获取预先设置好的参数从而获得里面的内容
- 它们的
- 注意点是:
- getAttribute 必须先setAttribute.
- HttpServletRequest 类有 setAttribute() 方法,而没有setParameter() 方法。
在这里我们再来看看
request.getParameter
和request.getAttribute
的用法
getParameter
是用来接收表单中设置的参数,也是接收post、get方法传递过来的参数- 使用
getAttribute
之前必须要进行setAttribute
,而在HTTP相关类里是没有setParameter
方法的 - 它们的区别在于:
- request.getParameter() 方法传递的数据,会从Web客户端传到Web服务器端,且它获得数据是String型的
- request.setAttribute() 和 getAttribute() 方法传递的数据只会存在于Web容器内部
![](https://i-blog.csdnimg.cn/blog_migrate/f3fb1c0e0a701a7bcd754d412162338c.jpeg)