HttpSession的生命周期
1)什么时候创建HttpSession对象
- JSP:若当前的JSP是客户端访问的WEB应用的第一个资源,且JSP的page指定的session属性为false,则服务器就不会为JSP创建一个HttpSession对象
- 若当前JSP不是客户端访问的当前WEB应用的第一个资源,且其他页面已经创建了一个HttpSession对象,则服务器也不会为当前JSP页面创建一个HttpSession对象,会返回已经创建好的
-
对于 Serlvet: 若 Serlvet 是客户端访问的第一个 WEB 应用的资源,
则只有调用了 request.getSession() 或 request.getSession(true) 才会创建 HttpSession 对象
2)什么时候销毁HttpSession对象
- invalidate()
- 服务器卸载了当前WEB应用
- 超出HttpSession的过期时间 session.setMaxIanctiveInterval(5)
- 并不是关闭了浏览器就销毁了HttpSession
各种路径的获取方法
- request.getContextPath():获取web应用的根路径,如web应用名为myweb,request.getContextPath() = "/myweb"