JSP中Session对象的由来

如果JSP没有显示的使用 <% @page session="false"%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句
HttpSession session = HttpServletRequest.getSession(true);//这也是JSP中隐含的session对象的来历。
由于session会消耗内存资源,因此,如果不打算使用session,应该在所有的JSP中关闭它。

问:session什么时候被创建?
答:一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用HttpServletRequest.getSession(true)这样的语句时才被创建。

问:getSession()/getSession(true),getSession(false)的区别?
答:getSession()/getSession(true):当session存在时返回该session,否则新建一个session并返回该对象;getSession(false):当session存在时返回该session,否则不会新建session,返回null。

问:session何时被删除?
答:session在下列情况下被删除:
A.程序调用HttpSession.invalidate()
B.距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间
C.服务器进程被停止

你可能感兴趣的:(session)