herdann 2009-07-06 17:12
浏览 215
已采纳

我在java里面如何logoff, 才能使得tomcat session减少?

http://localhost:8080/manager/html
我logoff之后去 tomcat得管理界面 发现session数没有减少。。为什么?
需要如何logoff使得tomcat可以释放session? 谢谢

[code="java"]public class LogOff extends BaseAction {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
try {
request.getSession().removeAttribute("USER");
return mapping.findForward("forward");
} catch (Exception ex) {
ActionForward err = mapping.findForward("error");
return err;
}
}
}[/code]

  • 写回答

2条回答 默认 最新

  • zhouning13 2009-07-07 10:38
    关注

    session当然不会减少,你只是将session持有的Attribute释放了,但是request还是继续持有者session,就好比说:一只狗名字叫session,你用一根线(request)牵着它,狗的嘴里调着一根骨头(USER),当狗吐掉骨头的时候,狗的数量并没有减少,回收器也不会去回收狗,顶多把骨头回收了。

    一般登陆会采用集中式的缓存(比如memcached)来做状态数据存储,而不使用session。
    有两个主要原因,一个是LZ遇到的问题,必须要等到session过期才会释放资源,这样在大访问量下很难减少资源的使用量。另一个原因是不同的服务器做负载均衡的时候,横向的扩展能力比用session方便,缓存宕机的几率和恢复难度也低。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料