ServletContext、HttpSession、HttpServletRequest
三者域属性空间范围、使用原则对比
Servlet用到的三个存放域属性的空间范围对象,这三个对象中所存储的域属性作用范围、使用原则不同
1、ServletContext、HttpSession、HttpServletRequest存储的域属性作用范围从大到下
ServletContext——>HttpSession——>HttpServletRequest
2、关于“会话”概念(因为下面用会话)
一个会话:浏览器开启——>关闭
3、ServletContext
即application,置入其中的域属性,是整个应用范围的,可以完成跨会话共享数据
4、HttpSession
置入其中的域属性是会话范围的,可以完成跨请求共享数据
5、HttpServletRequest
置入其中的域属性是请求范围的,可以跨Servlet共享数据,但这些Servlet必须在同一个请求中
例如需要请求转发 request.getRequestDispatcher(“/other”).forward(request, response);
HttpSession和HttpServletRequest区别可以转战该篇博客
https://blog.csdn.net/w_linux/article/details/79770735
6、使用原则
对于三个域属性空间对象的使用原则:在可以保证功能需求的前提下,优先使用小范围的,不仅可以节省服务器内存,还可以保证数据的安全性