博客 |
---|
JavaWeb |
文章目录
pageContext
创建:访问JSP时创建pageContext
销毁:关闭JSP时销毁
域的作用范围:当前jsp页面
request
创建:访问时创建request
销毁:响应结束request销毁
域的作用范围:一次请求中
session
创建:第一次执行request.getSession()时创建
销毁:
1)服务器(非正常)关闭时
2)session过期/失效(默认30分钟)
问题:时间的起算点 从何时开始计算30分钟?
从不操作服务器端的资源开始计时
可以在工程的web.xml中进行配置
```bash
<session-config>
<session-timeout>30</session-timeout>
</session-config>
```
3)手动销毁session
session.invalidate();
域的作用范围:
默认在一次会话中,也就是说在,一次会话中任何资源公用一个session对象。
面试题:浏览器关闭,session就销毁了? 不对。
默认情况下是一次会话。关闭浏览器的时候其实session没有销毁默认30分钟销毁,其实是cookie销毁了,因为sessionID是由cookie存储的。如果再次访问的时候,因为sessionID销毁了就找不到原来的session,服务器会重新创建一个session供客户端使用。
application(ServletContext)
创建:服务器启动
销毁:服务器关闭
域的作用范围:整个web应用
四大作用域范围总结
为什么pageContext域最小,因为它的作用范围只在当前页面,如果是转发到下一个页面paegContext中的数据就没有了,而reqeust域可以获取到。
pageContext域:当前jsp页面范围
request域:一次请求
session域:一次会话
application域:整个web应用
如果在servlet范围内只有三个域有用
request域:一次请求
session域:一次会话
application域:整个web应用(servletContext)
如果在jsp范围内有四个域有作用
page域:当前jsp页面范围(PageContext)
request域:一次请求
session域:一次会话
application域:整个web应用