这个是我入第二家公司,技术总监面试的一道我认为有水平的java面试题,当时我心里没有准确的答案,在一知半懂的情况下答了出了。结果是我面试上了。后来这道题成为了我面试别人是否能录用的标准之一。
我们一般的问法是这样:在一个门户网站,且没有登录的情况下要如何统计出在线人数。很多人给我的答案大多是拦首页等或别的页面,当然这个是不行的。还有的答法是用过滤器,这个或许可以,但至今我没有试过。
我们给出的代码是使用session的监听器,因为我们知道一连接一个用户,就会产生一个新的session。而断开一个用户则会销毁一个session。我们分别在产生和销毁时对在线用户数加1或是-1。这样的数据与当前用户数大致相同。说大致相同是因为session的销毁要在用户退出后的一段时间。所以会造成一定的偏差。
代码大致如下:
import javax.servlet.ServletContext; import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener;
public class OnlineCountListener implements HttpSessionListener {
private static int sessionCount = 0;
public void sessionCreated(HttpSessionEvent event) {
HttpSession session = event.getSession();
ServletContext application = session.getServletContext();
sessionCount++;
application.setAttribute(“onlineCount”, sessionCount);
}
public void sessionDestroyed(HttpSessionEvent event) {
HttpSession session = event.getSession();
ServletContext application = session.getServletContext();
if(sessionCount >= 1){
sessionCount = sessionCount – 1;
}
application.setAttribute(“onlineCount”, sessionCount);
}
}
分享到:
相关推荐
在本项目中,我们将创建一个简单的Java在线投票系统,它包括以下主要功能: 创建投票和投票选项。 允许用户投票。 统计投票结果并展示给用户。 用户界面,包括投票列表、投票详情和投票表单。 我们将使用Java编程...
一个小小的组建,实现在线用户列表的统计,里面附带有一个简单的示例程序!和详细的使用说明
系统具有界面清晰、操作简单,功能齐全的特点,使得基于Java Web技术的在线考试系统设计与实现管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高基于Java Web...
2.编写Java程序,实现一个简单的学生成绩管理系统,主要包括注册、登录、成绩录入和成绩查询等功能。具体要求如下: (1)显示。如输出显示学生成绩管理系统欢迎语,提示用户输入不同数字进入注册、登录、成绩录入和...
【设计要求】用java实现基于C/S模式的聊天室程序。聊天室分为服务器端 和客户端两部分,服务器端程序主要负责侦听客户端发来的消息,客户端需要登 陆到服务器端才可以实现正常的聊天功能。 服务器端主要功能如下:在...
Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText(); //得到服务器地址 ...
jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...
系统具有界面清晰、操作简单,功能齐全的特点,使得基于Java Web技术的在线考试系统设计与实现管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高基于Java Web...
百度云盘分享 ... Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText();...
jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...
该系统能给用户提供管理日程的平台,实现了日程管理、用户管理以及互动管理等功能,使一个简单的日程管理系统变得更加丰富,也让工作繁忙的现代人体会到一款能对日程进行全方位管理的系统软件会带给他们的多大的便捷...
系统具有界面清晰、操作简单,功能齐全的特点,使得基于Java Web技术的在线考试系统设计与实现管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高基于Java Web...
系统具有界面清晰、操作简单,功能齐全的特点,使得基于Java Web技术的在线考试系统设计与实现管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高基于Java Web...
AWT则是Java最早的GUI工具包,它提供了一组基础的组件,如标签、按钮、文本框等,这些组件对于创建简单的用户界面非常有用。 在后台部分,使用SQL Server数据库来存储和管理数据。SQL Server是微软公司的一个关系型...
系统具有界面清晰、操作简单,功能齐全的特点,使得基于Java Web技术的在线考试系统设计与实现管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高基于Java Web...
jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...
用到了java中方法的重写、重载、数组的相关操作,实现了教师、学生信息的录入、储存、人数统计、输出、删除等功能,缺失统计不同系不同班级学生成绩的功能,尽量有时间补上,程序很简单,仅仅是老师布置的实验题。...
jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...
jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...
jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...