三大作用域描述
名称 | 类型 | 描述 |
---|---|---|
request | HttpServletRequest | 将数据放在请求作用域中,在一次请求中实现数据的共享,比如请求转发 |
session | HttpSession | 将数据放在当前的会话作用域中,只要浏览器不关闭,都能共享 |
application | ServletContext | 将数据放在当前应用作用域中,应用在服务器启动的时候创建,关闭的时候销毁 |
三种作用域的测试都用到两个Servlet,即Aservlet和Bservlet。Aservlet是设置共享数据,Bservlet是接受共享数据,并且将接收到的数据反馈给浏览器。初次获得共享数据的默认值为-1。在此获取会做+1操作。
request作用域
测试代码如下图所示
测试结果如下图所示
问题与分析
1.问什么反馈给浏览器的数值始终为-1
因为每次request将数据放在请求作用域中每次刷新浏览器都是一个新的请求,所以每次都返回默认值-1。
session作用域
测试代码如下图所示
测试结果如下图所示
初次启动浏览器
浏览器刷新
问题与分析
1.为什么会话接受的数据会变
因为每次session将数据放在会话作用域中,它的作用域起始时间为浏览器开始,到浏览器结束才失效。所以每次会加1。
application作用域
测试代码如下图所示
测试结果如下图所示
初次启动并刷新浏览器
换浏览器访问后
问题与分析
1.为什么换浏览器后还能接受数据并进行+1操作
因为每次application将数据放在应用作用域中,它的作用域起始时间为Tomact服务器开始,到服务器关闭才失效,不会因为浏览器的更换而结束,所以每次会加1。