回 帖 发 新 帖 刷新版面

主题:请教退出登录的原理

最近做用户登录,有个历史性问题,怎么记录用户的退出时间?用户可以点击[u]退出登录[/u]链接,但很多人还是直接关闭浏览器,对于后者如何来记录退出时间呢?

    在服务器上设置session 的过期时间的方法就不用建议了,因为退出时间是要记录在数据库里的,我只管写程序,服务器是别人的工作,我想请问有没有什么方法可以探测用户已经关闭了所有的相关的页面?因为,如果用户已经关闭全部的相关页面就可以认定这个人退出了,各位有什么其它高见也请指教!!

[em18][em18][em18][em18][em18][em18][em18][em18][em18][em18][em18][em18]

回复列表 (共4个回复)

沙发

高手呢?还是看了没回?多少给点注意吧?我只是问解决方法,不是问具体代码的啊,什么人都可以给点意见,摆脱各位了啊

板凳

对,我也想知道!

3 楼

我想做退出的同时可以以Cookie的形式把退出的时间保存到客户端

在有,就是你想把退出的时间保存到数据库里我认为应该很简单吧

在退出那段代码上边把当前时间插入数据库不就完了
if(aa.equals("退出"))
{
    获取当前时间
    SQL语句
    执行SQL语句
    退出
}
要是直接点X关闭浏览器就什么东西都不执行了,我也想不出应该怎么做

4 楼

这里是Cookie的例子,没有注释,将就看吧,兄弟
<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="javax.servlet.http.Cookie,java.util.*"%>
<%
    String userName="hellking";
    Cookie[] cookie=request.getCookies();
    Cookie cookie_response=null;
    List list=Arrays.asList(cookie);
    Iterator it=list.iterator();
    while(it.hasNext())
    {
          Cookie temp=(Cookie)it.next();
          if(temp.getName().equals(userName+"_access_time"))
          {
              cookie_response=temp;
              break;
          }
        }

    out.println("当前的时间:"+new java.util.Date()+"<br>");

    if(cookie_response!=null)
    {
            out.println("上一次访问的时间:"+cookie_response.getValue());
           cookie_response.setValue(new Date().toString());
    }
    else
    {
        cookie_response=new Cookie(userName+"_access_time",new java.util.Date().toString());
    }
    response.addCookie(cookie_response);
%>

我来回复

您尚未登录,请登录后再回复。点此登录或注册