深入了解IT/互联网行业及岗位,请参阅通用IT/互联网岗位招聘计划(最新全岗版)。
深入了解职业晋升及学习路线,请参阅最优职业晋升路线和课程学习指南(最新全栈版)。
内容导航:
- 前言
- 1、登录人次统计
- 2、实现思路
- 2.1、实现步骤1
- 2.2、实现步骤2
- 3、运行效果
前言
网站访问量统计是个非常常见的功能,可以使用ServletContext实现。
1、登录人次统计
登录人次统计说明:
- 登录成功后,人次增1
- 每次登录成功后,在成功页面loginsuccess.jsp显示登录人次
2、实现思路
登录人次需要使用变量保存起来,每次登录成功后对该变量加1,并显示。
问题:变量保存到哪里呢?
保存到请求中?
- 不可以,如果保存到请求中,每次登录都是新的请求,那么都会重新计数保存到会话中?
- 不可以,如果保存到会话中,不同PC客户端,是不同会话,将重新计数保存到上下文中?
- 可以,上下文是一个应该只有一个,所以可以多个用户共享,计数可以累加。
2.1、实现步骤1
修改LoginServlet,获取上下文对象,从上下文中去count属性,如果不存在,说明第一次访问,初始化该值为1。如果存在,说明已经有客户端访问过,直接加1即可。把更新过的值保存到上下文中。
ServletContext ctxt=this.getServletContext();
String countstr=(String) ctxt.getAttribute("count");
int count=0;
if(countstr==null){
count=1;
}else{
count=Integer.parseInt(countstr);
count++;
}
ctxt.setAttribute("count", count);
2.2、实现步骤2
修改loginsuccess.jsp
使用JSP的内置对象application,获取属性count,并显示
您是第<%=application.getAttribute("count")%>位访问者!<br>
3、运行效果
问题:Tomcat重新启动后,计数器将从1开始。因为重新启动容器,上下文对象将被销毁,重新创建,因此存储在上下文中的count也从0开始。后续用监听器解决这个问题。
好好学习,天天向上!继续下一章…👏👏👏👏👏👏
感谢您阅读,如果对作者其它文章也很感兴趣,请扫码关注!🚀🚀🚀🚀🚀🚀