日期:2014-05-18  浏览次数:20827 次

求助!怎么关闭session!节约服务器资源
session会消耗服务器资源,我想对频繁刷新的用户关闭他的session.
就是服务器,不再为他浪费一部分内存.
session.invalidate()不行似乎只是清除了session中所有的内容,我是想对这个连接不在产生session,主要是为了节约服务器资源
.
<%@page   session= "false "%> 是不是也不行啊?
我觉得 <%@page   session= "false "%> 好象只是让这个页面不能使session了.

我的目的就是session会耗资源,谁老刷新,就不给他产生session,节约服务器资源!




------解决方案--------------------
session.removeAttribute(String name);
------解决方案--------------------
page指命中可以把SESSION关掉
------解决方案--------------------
正确的做法不是不给他session,而是,如果发现他频繁刷新,就把请求重定向到一个提示页面,以此来减少他的刷新请求。或者是,在这样的请求到来的时候,sleep一段时间,让他很长时间才能看到结果,而sleep的这段时间,正好可以把CPU资源让给其他请求。
------解决方案--------------------
首先,我想在性能考虑上,一个空的SessionID并不会浪费多少内存,主要的还是其它部分,另外Session的管理是否存在一定的问题,是否将太多的东西存储于Session中?一般Session中只存一下引用即可,使用管理代码管理Session数据是比较优化的方案。
------解决方案--------------------
多线程很简单,只需要在你判断该用户在刷新之后写上这个语句就可以了
try{
Thread.sleep(1000 * 3);
}catch(Exception e) {
e.printStackTrace()
}
------解决方案--------------------
session.removeAttribute();
------解决方案--------------------
<%@ page session= "false "%>
只是在jsp 转换的servlet中没有定义HttpSession这个变量,
还是可以通过request.getSession() 来获得的
------解决方案--------------------
lz说的不能做到的。
因为就算你invalidate它的session,它再次刷新还是会产生一个新的session.你怎么唯一确认这个用户,ip是肯定不行的。

换个思路,让它的session保留,发现他刷新就转向另一个页面。
可以计算在某个时间内比如1分钟内他的刷新率有多少来判断。设定一个Timer的时间,判断这个session是不是这个用户的session,是就转向静态页面,提示它刷新过快。



------解决方案--------------------
在页面加个计数器,当在设置的时间内,超过多少次,就把这个session关掉,这样便能解决上述问题
------解决方案--------------------
session.invalidate()让session立即失效
------解决方案--------------------
Session.invalidate();
------解决方案--------------------
刷新页面并不会产生多大的SESSION的操作,每个浏览器窗口都会创建一个session ID,服务器段使用这个ID来鉴别服务器上的SESSION和客户端的对应关系,你刷新页面并不会产生新的session
------解决方案--------------------
当客户端发出一个请求时,服务器给客户端分配一个sessionId,同时发送给客户端,将Id保存在客户端自已生成一个cookie中,如果在同一个会话中,在客户再一次发送请求时在,就不另产生session,超出规定的时间后,再发送请求时,就会重新分配session.(个人看法,请多多指教!)