springboot实现在线用户统计
1、第一步骤:创建一个springboot的项目(也可以创建一个简答的java项目)。
1、 打开创建页面 选择File-new-project..
2、选择创建的项目为spring initializr 进入springboot项目创建步骤(也可以选择类型java,创建一个普通java项目)
3、输入项目名字,选择依赖web(根据项目需求选择,此次需要),选择存放目录-完成(Finish)





2、第二步骤:编写HttpSessionLisener监听器。
1、新建类UserStatisticsListener实现javax.servlet.http.HttpSessionListener监听器
2、重写sessionCreated和sessionDestroyed方法,声明用户数量变量。具体代码如下所示:
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
@WebListener
public class UserStatisticsListener implements HttpSessionListener {
private static int count = 0;
@Override
public void sessionCreated(HttpSessionEvent se) {
System.out.println("创建session");
count ++;
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("销毁session");
count --;
}
}
3、 启动类ExcelimportApplication 添加@ServletComponentScan
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@ServletComponentScan
@SpringBootApplication
public class ExcelimportApplication {
public static void main(String[] args) {
SpringApplication.run(ExcelimportApplication.class, args);
}
}


3、第三步骤:控制编写。
新建UserStatisticsController 类
1、后台模拟登录,返回当前登录人数,方法logUser。
2、后台模拟注销账号,返回当前登录人数,方法logOut。
3、session超时自动销毁,也会调用sessionDestroyed方法
4、具体代码如下所示
import com.example.excelimport.listener.UserStatisticsListener;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@RestController
public class UserStatisticsController {
@RequestMapping("/logUser")
public String logUser(HttpServletRequest request, HttpServletResponse response, User user){
request.getSession().setAttribute("name",request.getParameter("name")); return request.getParameter("name")+"登录成功!当前在线用户人数是:"+ UserStatisticsListener.count;
}
@RequestMapping("/logOut")
public String logOut(HttpServletRequest request, HttpServletResponse response){
request.getSession().invalidate();
return request.getParameter("name")+"登出成功!当前在线用户人数是:"+UserStatisticsListener.count;
}
}

4、第四步骤:测试功能。
1、启动项目如图一所示。
2、在第一个浏览器URL地址输入“张三”登录。
3、在第二个浏览器URL地址中输入“李四”登录。
4、在第一个浏览器地址栏中输入“张三”登出。
测试成功!



