总结楼上的发言:
1.如果不要求及时反映的话,通过session listener的监听,在session销毁时,去修改数据库值。
2.如果系统要求及时反映用户是否在线,需要客户端去轮询服务器端,ajax定时请求的方式可以去做。服务器端,发现在设定的时间内,客户端没发请求过来,则标记为不在线。优点:及时。缺点:程序处理多,和服务器交互多。
用Session_End, 不管 用户关闭浏览器的时候,只有session过期了,就触发
只能定时刷新
同意
1楼说的对、
要用触发来实现了
写一个实现sessionListener接口的类,覆盖Destroysession()方法,会在客户端关闭浏览器时触发,方法内获得用户名交给其他类去处理连接数据库修改数据。
说说我的看法哈,我感觉判断是否在线可以通过session是否为空就可以了,没必要在数据库里面专门用一个字段来判断,那样无疑会加重数据库的负担。