当浏览器端,关机,掉线,或者关闭所有页面时,服务器端怎么第一时间知道当前用户已经离线
解决方案 »
- 用过VisualSVN SERVER的进
- js与struts2数据交互
- Web App使用Quartz实现java schedule job
- hibernate 高手进,谢谢
- 如何用java程序编写具有列编辑功能的文本编辑器?
- JMS不能过网关
- java编程思想里看到一段代码,不是很理解
- DB2中表示时间的sql数据类型常用的有哪些?
- 使用jbuilder7和weblogic7在编译ejb的时候出现ejbc可能引发不知名的错误的警告怎么处理?
- struts2.3和hibernate5.2自动生成数据表不成功,单元测试报错,本人小白实在不会了,求大神
- 请问hibernate many-to-one标签中的insert和update属性起什么作用?
- 开发中的oracle
失效就修改数据库为false
如果人口不是很多就直接放服务器的对象列表里吧
意味着用户如果在这段时间内不作为,就会自动删除该会话。
http://topic.csdn.net/t/20050225/08/3804877.html
不清楚服务器端有没有可监听访客是否关闭浏览器到方法,不过可以考虑一下这个方法:
在页面上嵌入一个iframe页面,该页面用js控制没间隔1s(时间间隔自己按需设置)向服务端发起一次请求,如果服务端在1min内一直 没收到这个请求的话,可视为用户已经关闭浏览器。
如果用spring框架的话,ScheduledTimerTask刚好可以实现这个需求。否则自己写监听器。
当你再次打开浏览器的时候,如果cookie中的sessionId对应的服务器上的session还存在,没有被服务器销毁的话。则默认你还在这次的会话中。
<filter>
<filter-name>mainfilter</filter-name>
<filter-class>com.chance.MainFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>mainfilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
------------------MainFilter.java--------------------------
package com.chance;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.*;
import java.io.IOException;
public class MainFilter implements Filter{
public void init(FilterConfig filterConfig)throws ServletException{
//
}
public void doFilter(ServletRequest request,
ServletResponse response,FilterChain chain)throws ServletException, IOException{
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;
boolean isValid=true;
///////check attribute
isValid=req.getSession().getAttribute("name")==null;
if(isValid){
req.getSession().getServletContext()
.getRequestDispatcher("/login.jsp").forward(req, res);
}else
chain.doFilter(request,response);
}
public void destroy(){}
}