在线抓取网页(什么是SessionSession对应的中文翻译是会话。。 )

优采云 发布时间: 2021-11-29 23:06

  在线抓取网页(什么是SessionSession对应的中文翻译是会话。。

)

  什么是会话

  Session对应的中文翻译是conversation。

  会话是指用户打开浏览器访问一个网站的时间,无论这个网站访问了多少个页面,点击了多少个链接,都属于同一个对话。在用户关闭浏览器之前,它们属于同一个会话。

  HTTP 协议是短链接,因此无法根据服务器端建立的连接数来统计当前在线人数。但是,在线用户的数量可以通过计算会话数来估计。

  一旦用户访问服务器,就会创建一个会话。如果用户继续访问,则会话将继续有效。

  如果用户在 30 分钟后没有进行任何操作,则表示用户“离线”,相应的会话将被销毁。

  因此您可以通过计算保留的会话数来估计当前在线人数。

  PeopleLisened.java

  package com.chenchangjie.listener;

import javax.servlet.ServletContext;

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

public class PeopleListener implements HttpSessionListener {

/**

* *敏*感*词*session创建

* @param se

*/

@Override

public void sessionCreated(HttpSessionEvent se) {

ServletContext context = se.getSession().getServletContext();

Integer num = (Integer) context.getAttribute("online_num");

if(num == null)

num = 0;

++num;

context.setAttribute("online_num",num);

System.out.println("新增一位用户...");

}

/**

* *敏*感*词*session销毁

* @param se

*/

@Override

public void sessionDestroyed(HttpSessionEvent se) {

ServletContext context = se.getSession().getServletContext();

Integer num = (Integer) context.getAttribute("online_num");

if(num == null)

num = 0;

else

--num;

context.setAttribute("online_num",num);

System.out.println("减少一位用户...");

}

}

  web.xml 添加配置

  

com.chenchangjie.listener.PeopleListener

  test.jsp

  运行结果:

  输出被替换是因为我监控了Context,每次增加session都会更新Context

  

  打开浏览器会增加

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线