session在用户注销之后如果页面中有重定向的语句,那么session会被重新创建吗?

「已注销」 2016-12-20 05:24:14
我写了一个listener,继承了HttpSessionListener,其中sessionCreated方法中写了用来记录用户对象的方法,代码如下:
public void sessionCreated(HttpSessionEvent se) {
//servletContext对象
ServletContext context=se.getSession().getServletContext();
Integer integer=(Integer)context.getAttribute("count");
if(integer==null) {
integer=1;
}else{
integer=integer.intValue()+1;
}
context.setAttribute("count",integer);
}
在页面上使用form模拟用户登录,登陆之后的页面用户获取在线的人数,而注销页面中使用重定向定位到登录页面,为什么在ie与chrome浏览器登陆之后,在ie浏览器中注销登录之后,刷新chrome浏览器的登陆之后的页面,其获取的在线人数还是不变,听到周围人的解释是因为重定向的原因,导致session会被再次创建,这种说法对吗?如果对?为什么呢
...全文
552 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
GrayHJX 2016-12-21
  • 打赏
  • 举报
回复
每次客户端向服务器请求时都会随即产生一个session,光统计session这样做确实不太准确,这样游客访问也会被认为在线。可以通过将已经登录的session存数据库,然后查数据库就好了
「已注销」 2016-12-20
  • 打赏
  • 举报
回复
引用 4 楼 bichir 的回复:
监听创建session来实现这功能会有数据上的错误,因为在用户未登时你刷新页面他同样会创建一个session。所以你要统计在线人数只有在你登陆方法里去做统计。 还有你这里用integer是线程不安全的,并发时统计会出错。
那最好用什么实现呢???为什么用户未登录时,刷新页面会创建一个session呢??
bichir 2016-12-20
  • 打赏
  • 举报
回复
监听创建session来实现这功能会有数据上的错误,因为在用户未登时你刷新页面他同样会创建一个session。所以你要统计在线人数只有在你登陆方法里去做统计。 还有你这里用integer是线程不安全的,并发时统计会出错。
「已注销」 2016-12-20
  • 打赏
  • 举报
回复
引用 2 楼 m2200 的回复:
session值是你自己赋的吧
恩,是我自己赋值的
爱睡觉的阿狸 2016-12-20
  • 打赏
  • 举报
回复
session值是你自己赋的吧
「已注销」 2016-12-20
  • 打赏
  • 举报
回复
自己顶顶!!!

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧