为客户开发的系统已经上线使用了,但是反应服务器断开的时候太短,希望延长服务器的有效时间。于是想到了session,项目框架不是我搭建的,但是还是尝试找找,找了都没看到哪里直接设置了session 的有效时间,写了session的监听器,创建和注销,也是默认的半个小时。于是没找出问题所在。但是还是对session 有了一个了解。
session 是服务器自己存起来的,一个连接过来的时候,服务器会分配一个session ,之后服务器便会监听这个session,超过时间这个session 将被视为无效。所以当一个页面打开太久,用户没有操作。这个session 就会被放弃,用户就需要重新建立新的连接获取新的session.这样对于系统安全,以及服务器的效率有很大的帮助。试想永远不抛弃一个连接,那么服务器的压力多大。
另外,也不是所有的网页连接都会建立session.换句话也就是说,不是点开一个网址就会建立一个session.
因为在session 之前有个叫servlet 的东西。在servlet中调用request.getSession();或者request.getSession(true);服务器才会产生session,意味着session不是自己生成的,需要你请求的servlet里面调用才会有。
最后提问,为什么jsp 的web 应用程序没有调用也可以直接有session 呢? 那是因为jsp 本质是servlet, 并且在jsp 里面的确调用了request.getSession();