欢迎光临
我们一直在努力

jsp项目中实现关闭浏览器后吊线,只要不关闭不操作也保持在线-JSP教程,Jsp/Servlet

建站超值云服务器,限时71元/月

最近一个项目中用jsp实现用户登录,当然是使用session来保持。这个用implements httpsessionbindinglistener接口来实现,这个是我写的简要代码。

public class onlineuser implements httpsessionbindinglistener {

private newuser newuser=null;

public onlineuser() {

newuser=new newuser();

}

public boolean existuser(string str)

{

return false;

}

public void valuebound(httpsessionbindingevent e) {

string tempname=e.getname();

//integer m=new integer(tempname);

newuser.setusername(tempname);

try {

newuser.updateonline();

}

catch (exception ex) {

}

system.out.println("用户"+tempname+"上限");

}

public void valueunbound(httpsessionbindingevent e) {

string tempname=e.getname();

//integer m=new integer(tempname);

newuser.setusername(tempname);

try {

newuser.updateunline();

}

catch (exception ex) {

}

system.out.println("用户"+tempname+"下限");

}

}

在登录处理的servlet中调用

onlineuser onlineuser=new onlineuser();

request.getsession(false).setattribute(login_no,onlineuser);

其中login_no是变量是登录名称。同时要把request.getsession(false)值设为false,他有true和false两个值,true为如果如果没有相同的session则创建。如果有则覆盖,false则没有则创建有则不创建,我要用这个实现单点登录所以用了false。这样就可以监听你创建的session了。如果session超时,则执行valueunbound方法。创建session则执行valuebound方法。我在这里是对人员的一个状态字段进行更改。这样当这个用户在线的时候,另一个用户在另外的机子上线时在登录页面我就可以进行判断了。这方面的资料网上有很多,后来遇到问题就是当设置session超时时间为1分钟时。用户不正常退出可以一分钟后可以正常改变用户下线状态,但是用户如果1分钟内电脑没有操作也同时会吊线,我在网上找了很长时间,没有这方面的资料。后来我用我的一个框架(我的程序用的是框架,我用的是底部框架)

javax.servlet.http.httpsession session2 = request.getsession(false);

com.chinantn.oa.util.oasession oasession =

(com.chinantn.oa.util.oasession) session2.getattribute("oasession");

这个是我的登录页面用的一个处理session的类。然后在这个页面中加入

<meta http-equiv="refresh" content="30;url=foot.jsp">.做成自动刷新。

间隔时间小于session超时时间。主要目的是如果页面在超时时间内没有访问的话用这个自动刷新访问一下session这样来解决问题。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » jsp项目中实现关闭浏览器后吊线,只要不关闭不操作也保持在线-JSP教程,Jsp/Servlet
分享到: 更多 (0)

相关推荐

  • 暂无文章