如何知道用户关闭浏览器,结束会话?

原创 2004年08月12日 10:26:00
J2EE应用下 用户会话结束后如何回收相关资源
案例描述:
系统平台:
weblogic server 8.1 sp2
技术方案:
Servlet、JSP、EJB、JDBC Connction Pool
工作原理:
用户通过浏览器访问登录到系统时,JSP通过JavaBean建立与 EJB的调用连接,同时EJB对象通过Connection Pool连接后台数据库。用户合法登录后 通过JSP JavaBean调用EJB对象的方法 完成对后台数据库的操作和查询,并由JSP将查询结果返回用户浏览器。

要解决之问题:
当用户非正常Logout(会话超时或者用户直接关闭浏览器),EJB对象所拥有的相关资源(如JDBC Connection Pool)不能正常释放,如果此种情况出现,相关资源会有被耗尽的可能, 在此种情况下应该如何释放EJB对象所拥有的资源。

解决方法:
使用Listener Servlet实现HttpSessionListener接口,该接口有如下两个方法:
public class ServletListener
extends HttpServlet implements HttpSessionListener {
void sessionCreated(HttpSessionEvent se) { }//当会话创建时触发
void sessionDestroyed(HttpSessionEvent se) //当会话结束时触发{
//释放 EJB对象的相关资源
try {
         se.getSession().setAttribute("EJBEQ",null);
      se.getSession().removeAttribute("EJBEQ");     
         }
    catch (Exception ex) {
      System.out.println(ex.toString());
    }
}
}
当会话超时,WEB 容器会调用sessionDestroyed()方法,当该方法调用后 EJB容器会调用ejbRemove()方法实现EJB对象拥有的资源的释放。

Listener Servlet部署文件web.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <listener>
    <listener-class> ServletListener </listener-class>
  </listener>
  <session-config>
    <session-timeout>1</session-timeout>
  </session-config>
</web-app>

关闭浏览器时,释放session

关闭浏览器时,释放session 获取浏览器关闭shijian
  • lx19860203
  • lx19860203
  • 2014年04月08日 14:31
  • 1269

浏览器关闭后,Session会话结束了么?

今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了?我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保存当前用户的状态信息,初...
  • stanxl
  • stanxl
  • 2015年07月31日 20:22
  • 21906

浏览器关闭后,Session会话结束了么?

今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了?我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保存当前用户的状态信息,初...
  • stanxl
  • stanxl
  • 2015年07月31日 20:22
  • 21906

浏览器关闭后,Session会话结束了么?

浏览器关闭后,Session会话结束了么? 今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了? 我们知道Session是JSP的九大内置对象...
  • Shenshaoqiu
  • Shenshaoqiu
  • 2017年12月18日 23:37
  • 45

浏览器关闭后,Session会话结束了么?

今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了? 我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保 存当前用...
  • u010523770
  • u010523770
  • 2016年11月16日 14:53
  • 201

浏览器关闭后,Session会话结束了么?

转载自;http://blog.csdn.net/stanxl/article/details/47105051 今天想和大家分享一个关于Session的话题: 当浏览器关闭...
  • guorun18
  • guorun18
  • 2017年03月23日 11:12
  • 721

linux 关闭远程回话之后保持进程继续

你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终...
  • zhuhongming123
  • zhuhongming123
  • 2013年12月09日 11:12
  • 3765

J2EE-session在浏览器关闭后失效问题

session在浏览器关闭后失效问题前几天在做一个签到系统时,遇到了喜闻乐见的session问题,项目为Spring+SpringMVC+Mybatis框架,maven管理目录的javaweb端系统,...
  • No_Endless
  • No_Endless
  • 2016年07月21日 09:54
  • 3374

Tensorflow——会话

Tensorflow中的会话是来执行定义好的运算的。会话拥有并管理Tensorflow程序运行时的所有资源。当计算完成之后需要关闭会话来帮助系统回收资源,否则可能出现资源泄露的问题。 Tensorf...
  • weixin_38195506
  • weixin_38195506
  • 2017年07月11日 20:40
  • 404

浏览器禁用Cookie,基于Cookie的会话跟踪机制失效的解决办法

浏览器禁用Cookie,基于Cookie的会话跟踪机制失效的解决办法
  • w_basketboy
  • w_basketboy
  • 2014年07月08日 15:03
  • 1350
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何知道用户关闭浏览器,结束会话?
举报原因:
原因补充:

(最多只允许输入30个字)